review code for -LOCAL-DEVEL-DEBS; rely on gdebi to do the equivalent of yum localinstall
[build.git] / lbuild-nightly.sh
index af3a49d..5964b4d 100755 (executable)
@@ -12,10 +12,11 @@ export PATH=$PATH:/bin:/sbin
 
 # default values, tunable with command-line options
 DEFAULT_FCDISTRO=f20
-DEFAULT_PLDISTRO=planetlab
+DEFAULT_PLDISTRO=lxc
 DEFAULT_PERSONALITY=linux64
-DEFAULT_BASE="@DATE@--@PLDISTRO@-@FCDISTRO@-@PERSONALITY@"
+DEFAULT_MAILTO="build at onelab.eu"
 DEFAULT_BUILD_SCM_URL="git://git.onelab.eu/build"
+DEFAULT_BASE="@DATE@--@PLDISTRO@-@FCDISTRO@-@PERSONALITY@"
 
 # default gpg path used in signing yum repo
 DEFAULT_GPGPATH="/etc/planetlab"
@@ -448,7 +449,7 @@ function usage () {
     echo " -f fcdistro - defaults to $DEFAULT_FCDISTRO"
     echo " -d pldistro - defaults to $DEFAULT_PLDISTRO"
     echo " -p personality - defaults to $DEFAULT_PERSONALITY"
-    echo " -m mailto - no default"
+    echo " -m mailto - defaults to $DEFAULT_MAILTO"
     echo " -s build_scm_url - git URL where to fetch the build module - defaults to $DEFAULT_BUILD_SCM_URL"
     echo "    define GIT tag or branch name appending @tagname to url"
     echo " -t pldistrotags - defaults to \${PLDISTRO}-tags.mk"
@@ -566,6 +567,7 @@ function main () {
     [ -z "$FCDISTRO" ] && FCDISTRO=$DEFAULT_FCDISTRO
     [ -z "$PLDISTRO" ] && PLDISTRO=$DEFAULT_PLDISTRO
     [ -z "$PERSONALITY" ] && PERSONALITY=$DEFAULT_PERSONALITY
+    [ -z "$MAILTO" ] && MAILTO=$(echo $DEFAULT_MAILTO | sed -e 's, at ,@,')
     [ -z "$PLDISTROTAGS" ] && PLDISTROTAGS="${PLDISTRO}-tags.mk"
     [ -z "$BASE" ] && BASE="$DEFAULT_BASE"
     [ -z "$WEBPATH" ] && WEBPATH="$DEFAULT_WEBPATH"
@@ -689,7 +691,10 @@ function main () {
            GIT_REPO=$(echo $BUILD_SCM_URL | cut -d@ -f1)
            GIT_TAG=$(echo $BUILD_SCM_URL | cut -s -d@ -f2)
            GIT_TAG=${GIT_TAG:-master}
-           mkdir -p $tmpdir; git archive --remote=$GIT_REPO $GIT_TAG | tar -C $tmpdir -xf -
+           mkdir -p $tmpdir 
+            ( git archive --remote=$GIT_REPO $GIT_TAG | tar -C $tmpdir -xf -) || \
+               ( echo "==================== git archive FAILED, trying git clone instead" ; \
+                 git clone $GIT_REPO $tmpdir && cd $tmpdir && git checkout $GIT_TAG && rm -rf .git)
 
             # Create lxc vm
            cd $tmpdir
@@ -699,7 +704,6 @@ function main () {
            rm -rf $tmpdir
            # Extract build again - in the vm
            [ -n "$SSH_KEY" ] && setupssh ${BASE} ${SSH_KEY}
-           # xxx not working as of now - waiting for Sapan to look into this
            virsh -c lxc:/// lxc-enter-namespace $BASE /bin/bash -c "git clone $GIT_REPO /build; cd /build; git checkout $GIT_TAG"
        fi
        echo "XXXXXXXXXX $COMMAND: preparation of vm $BASE done" $(date)