Correction : évite de dépasser GROUP_NAME_MAX_LENGTH==32 .
[lhc/ateliers.git] / vm_hosted
index b23221b..de2074e 100755 (executable)
--- a/vm_hosted
+++ b/vm_hosted
@@ -35,6 +35,16 @@ rule_git_configure () {
        tool=$(cd "$tool"; cd -)
        sudo ln -fns "$tool"/vm_hosted /usr/local/sbin/
        sudo ln -fns "$tool"/vm_hosted /usr/local/sbin/vm
+       sudo install -m 770 /dev/stdin .git/hooks/post-update <<-EOF
+               #!/bin/sh -efux
+               case \$1 in
+                (refs/remotes/master)
+                       cd ..
+                       git --git-dir=\$PWD/.git checkout -f -B master remotes/master
+                       git --git-dir=\$PWD/.git clean -f -d -
+                       ;;
+                esac
+               EOF
        )
  }
 rule_git_reset () {
@@ -208,7 +218,7 @@ rule_apache2_configure () {
                 /etc/apache2/site.d/"$site" \
                 /home/www/etc/apache2/"$site"
                test -e /home/www/pub/"$site" ||
-               sudo install -d -m 770 -o www."$site" -g www."$site" \
+               sudo install -d -m 2770 -o www."$site" -g www."$site" \
                 /home/www/pub/"$site"
                getent passwd www."$site" >/dev/null ||
                sudo adduser \
@@ -589,7 +599,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 () {
@@ -708,7 +718,14 @@ rule_mail_configure () {
  }
 rule_mysql_configure () {
        rule apt_get_install mysql-server-5.5
-       sudo service mysql restart
+       sudo install -m 644 -o root -g root \
+           "$tool"/etc/mysql/my.cnf \
+           /etc/mysql/my.cnf
+       if test ! -d /home/mysql; then
+           sudo install -d -m 750 -o mysql -g mysql \
+               /home/mysql
+           sudo -u mysql mysql_install_db --no-defaults --datadir=/home/mysql/
+       fi
  }
 rule_network_configure () {
        sudo install -m 644 -o root -g root /dev/stdin /etc/hostname <<-EOF
@@ -778,7 +795,7 @@ rule_www_configure () {
        sudo install -d -m 750 -o www -g www \
         /home/www/etc
        sudo install -d -m 1771 -o www-data -g www-data \
-        /home/www/pub \
+        /home/www/pub
        sudo install -d -m 1771 -o log.www -g log.www \
         /home/www/log
  }
@@ -1019,6 +1036,7 @@ rule_postfix_configure () {
                abuse: root
                admin: root
                contact: root
+               mailer-daemon: root
                postmaster: root
                root: $(getent group sudo | cut -f 4 -d : | tr , ' ')
                EOF
@@ -1120,6 +1138,7 @@ rule_runit_configure () {
                        "$tool"/etc/sv/"$sv"/configure
                 then
                        ln -fns ../sv/"$sv" /etc/service/"$sv"
+                       test ! -e /etc/sv/"$sv"/supervise/ok ||
                        sv restart "$sv"
                 fi
         done
@@ -1259,28 +1278,6 @@ rule_user_configure () {
                USERGROUPS=yes
                USERS_GID=100
                EOF
- }
-rule_user_admin_add () { # SYNTAX: $user
-       rule user_configure
-       local user=$1
-       getent passwd "$user" >/dev/null ||
-       sudo adduser --disabled-password "$user"
-       eval local home\; home="~$user"
-       sudo adduser "$user" sudo
-       sudo install -m 640 -o root -g root \
-        "$tool"/var/pub/ssh/"$user".key \
-        "$home"/etc/ssh/authorized_keys
-       local key; local -; set +f
-       for key in "$tool"/var/pub/openpgp/*.key
-        do sudo -u "$user" gpg --import - <"$key"
-        done
-       rule user_admin_configure
- }
-rule_user_admin_configure () {
-       rule initramfs_configure
-       rule user_root_configure
- }
-rule_user_configure () {
        sudo install -d -m 750 -o root -g root \
         /etc/skel \
         /etc/skel/etc \
@@ -1324,6 +1321,26 @@ rule_user_configure () {
         "$tool"/etc/screenrc \
                /etc/screenrc
  }
+rule_user_admin_add () { # SYNTAX: $user
+       rule user_configure
+       local user=$1
+       getent passwd "$user" >/dev/null ||
+       sudo adduser --disabled-password "$user"
+       eval local home\; home="~$user"
+       sudo adduser "$user" sudo
+       sudo install -m 640 -o root -g root \
+        "$tool"/var/pub/ssh/"$user".key \
+        "$home"/etc/ssh/authorized_keys
+       local key; local -; set +f
+       for key in "$tool"/var/pub/openpgp/*.key
+        do sudo -u "$user" gpg --import - <"$key"
+        done
+       rule user_admin_configure
+ }
+rule_user_admin_configure () {
+       rule initramfs_configure
+       rule user_root_configure
+ }
 rule_user_root_configure () {
        sudo install -d -m 750 -o root -g root \
         /root/etc \