From: Nicolas Boisselier Date: Fri, 21 Aug 2015 17:40:13 +0000 (+0100) Subject: install X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=aaf6a7ad472383bfcbcb51058a81438f0672eae1;p=nb.git install --- diff --git a/bin/nb-update b/bin/nb-update index 9576ec3c..9bdfccd6 100755 --- a/bin/nb-update +++ b/bin/nb-update @@ -1,7 +1,8 @@ #!/usr/bin/env bash ##################################################################### # -# Call by cron/etc/nb +# Pull update and run install script +# Called by cron/etc/nb # ##################################################################### #su nico -c "cd /opt/nb && git -C /opt/nb pull" @@ -19,6 +20,7 @@ printf '#!%s\n%s\n' `which sh` 'ssh -o BatchMode=yes $@' > "$TMP" && chmod 755 " export GIT_SSH="$TMP" for repo in \ + $((ls /{opt,home,home/www}/*/.nb-install | xargs -n1 dirname) 2>/dev/null) \ $NB_ROOT \ /opt/backup_servers \ /{opt,home/www}/rent \ @@ -28,26 +30,35 @@ for repo in \ /home/www/izideal \ ; do + # Check dir + [ -d "$repo/.git" ] || continue + cd "$repo" || continue + + name="$(basename $repo)" + + # Get user case "$repo" in *:*) user=${repo%%:*}; repo=${repo#*:} ;; *) user="" ;; esac - [ -d "$repo/.git" ] || continue - cd "$repo" || continue - [ -z "$user" ] && user=`ls -dl "$repo" |awk '{print $3}'` - cmd="git pull" + + # Pull echo ">git pull $repo (user=$user)" + cmd="GIT_SSH=$TMP cd \"$repo\" && git pull" + [ -x bin/$name-install ] && cmd="$cmd && echo '>$name-install' && bin/$name-install" + if [ "$USER" == "$user" ]; then - timeout 30 git pull + bash -c "$cmd" elif [ "$USER" == "root" ]; then - timeout 30 su $user -c "GIT_SSH=$TMP cd \"$repo\" && git pull" + su $user -c "$cmd" else echo "Ignore $repo: current user=$USER repo user=$user" continue fi + break ret=$? [ "$ret" != "0" ] && ex=$ret && echo ">err $ret" @@ -57,12 +68,6 @@ for repo in \ done rm -f "$TMP" -##################################################################### -# Install -# -echo ">nb-install" -nb-install - ##################################################################### # End # diff --git a/etc/profile.d/git.sh b/etc/profile.d/git.sh index f807827e..ed51e1a2 100644 --- a/etc/profile.d/git.sh +++ b/etc/profile.d/git.sh @@ -39,7 +39,7 @@ git_create() { git init # Create files - printf "$dir\n=============\n\n\n## Synopsis\n\nDESCRIPTION\n" > README.md + printf "$dir\n=============\n## Synopsis\n\nDESCRIPTION\n" > README.md echo ">git add ." git add . @@ -47,7 +47,9 @@ git_create() { echo ">git commit -m \"Created by $FUNCNAME\"" git commit -m "Created by $FUNCNAME" - #git push --set-upstream origin master + echo ">git push --set-upstream origin master" + git push --set-upstream origin master + echo ">git remote add origin $repo:${dir}.git" git remote add origin $repo:${dir}.git }