X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=vm_hosted;h=9743830488a48aa776f4e38b85070f509e83636e;hb=e80dbf50a89c0b84174e566b85af9593410becfb;hp=3649341fb152459388d71b57154a3c6ba5e89294;hpb=82f0ba3e09ca73635984d0592bc44fef88b391c3;p=lhc%2Fateliers.git diff --git a/vm_hosted b/vm_hosted index 3649341..9743830 100755 --- a/vm_hosted +++ b/vm_hosted @@ -7,6 +7,7 @@ while test -L "$tool" tool=${tool%/*} . "$tool"/lib/rule.sh . "$tool"/etc/vm.sh +export TRACE=1 rule_help () { # SYNTAX: [--hidden] local hidden; [ ${1:+set} ] || hidden=set @@ -41,7 +42,7 @@ rule_git_configure () { (refs/remotes/master) cd .. git --git-dir=\$PWD/.git checkout -f -B master remotes/master - git --git-dir=\$PWD/.git clean -f -d - + git --git-dir=\$PWD/.git clean -f -d -x ;; esac EOF @@ -599,7 +600,7 @@ rule_gitolite_configure () { rmdir "$home"/etc/gitolite/"$d" done rule apt_get_install gitweb highlight - #sudo sv restart spawn-fcgi.git.80.git.heureux-cyclage.org + #sudo sv restart fcgi.git.80.git.heureux-cyclage.org #sudo sv restart git-daemon.git.9418 } rule_locales_configure () { @@ -726,7 +727,6 @@ rule_mysql_configure () { /home/mysql sudo -u mysql mysql_install_db --no-defaults --datadir=/home/mysql/ fi - sudo service mysql restart } rule_network_configure () { sudo install -m 644 -o root -g root /dev/stdin /etc/hostname <<-EOF @@ -1118,10 +1118,20 @@ rule_procmail_configure () { rule_runit_configure () { rule apt_get_install runit local -; set +f - rm -f /etc/service/* - # NOTE: runsvdir éteindra les services qui n'apparaîtront plus ici. - for sv in "$tool"/etc/sv/* - do sv=${sv#"$tool"/etc/sv/} + for sv in ${1-/etc/service/*} + # NOTE: stoppe les services en retenant leur status de départ + do sv=$(basename "$sv") + local sv_hash=$(printf %s "$sv" | sha1sum | cut -f 1 -d ' ') + local sv_status + IFS= read -r sv_status_$sv_hash <<-EOF + $(sv status "$sv") + EOF + rm -f /etc/service/"$sv" + done + for sv in ${1-"$tool"/etc/sv/*} + # NOTE: configure et (re-)démarre les services + do sv=$(basename "$sv") + local sv_hash=$(printf %s "$sv" | sha1sum | cut -f 1 -d ' ') sudo install -d -m 770 -o root -g root \ /etc/sv/"$sv" sudo install -m 770 -o root -g root \ @@ -1135,12 +1145,14 @@ rule_runit_configure () { "$tool"/etc/sv/"$sv"/log/run \ /etc/sv/"$sv"/log/run fi - if test ! -x "$tool"/etc/sv/"$sv"/configure || - "$tool"/etc/sv/"$sv"/configure - then - ln -fns ../sv/"$sv" /etc/service/"$sv" - sv restart "$sv" - fi + test ! -x "$tool"/etc/sv/"$sv"/configure || + "$tool"/etc/sv/"$sv"/configure + ln -fns ../sv/"$sv" /etc/service/"$sv" + eval local sv_status=\"\${sv_status_$sv_hash-}\" + case $sv_status in + ("") sv start "$sv";; + (run:*) sv restart "$sv";; + esac done } rule_ssh_configure () {