18870: git stuff
[arvados.git] / tools / salt-install / installer.sh
index 7bd789f6890af0d8915992dc69c0c4e90e95e252..37f1baf20ea5e48e1a21125848bd55620c77abd0 100755 (executable)
@@ -64,20 +64,31 @@ case "$subcmd" in
 
        source ${CONFIG_FILE}
 
 
        source ${CONFIG_FILE}
 
-       git commit -m"prepare for deploy"
+       set -x
+
+       git add -A
+       if ! git diff --cached --exit-code ; then
+           git commit -m"prepare for deploy"
+       fi
        for NODE in "${!NODES[@]}"
        do
        for NODE in "${!NODES[@]}"
        do
-           if ! ssh $NODE test -d arvados-setup.git ; then
-               ssh $NODE git init --bare arvados-setup.git
-               git add remote $NODE $DEPLOY_USER@$NODE:arvados-setup.git
-               git push $NODE
-               ssh $NODE git clone arvados-setup.git arvados-setup
+           if test $NODE = localhost ; then
+               sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}
+           else
+               if ! ssh $NODE test -d arvados-setup ; then
+                   ssh $NODE git init --bare arvados-setup.git
+                   if ! git remote add $NODE $DEPLOY_USER@$NODE:arvados-setup.git ; then
+                       git remote set-url $NODE $DEPLOY_USER@$NODE:arvados-setup.git
+                   fi
+                   git push $NODE master
+                   ssh $NODE git clone arvados-setup.git arvados-setup
+               fi
+
+               git push $NODE master
+               ssh $NODE git -C arvados-setup pull
+
+               ssh $DEPLOY_USER@$NODE "cd arvados-setup && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
            fi
            fi
-
-           git push $NODE master
-           ssh $NODE git -C arvados-setup pull
-
-           ssh $DEPLOY_USER@$NODE "cd arvados-setup && sudo ./provision.sh --config local.params --roles ${NODES[$NODE]}"
        done
        ;;
     *)
        done
        ;;
     *)