Correction : résilience des sauvegardes MySQL et PostgreSQL.
[lhc/ateliers.git] / local / gitolite-configure
1 #!/bin/sh -eu
2 tool=$(readlink -e "${0%/*}/..")
3 . "$tool"/local/lib.sh
4
5 sudo debconf-set-selections <<-EOF
6 gitolite gitolite/gituser string git
7 gitolite gitolite/adminkey string
8 gitolite gitolite/gitdir string /home/git
9 EOF
10 "$tool"/local/apt-get-install gitolite
11 "$tool"/local/adduser git \
12 --disabled-password \
13 --group \
14 --home /home/git \
15 --shell /bin/bash \
16 --system
17 sudo chfn --full-name git git
18 "$tool"/local/adduser log-git \
19 --disabled-login \
20 --disabled-password \
21 --group \
22 --home /home/git/log \
23 --shell /bin/false \
24 --system
25 "$tool"/local/adduser git-data \
26 --disabled-login \
27 --disabled-password \
28 --group \
29 --home /home/git/pub \
30 --shell /bin/false \
31 --system
32 sudo adduser git git-data
33 sudo install -d -m 750 -o git -g git \
34 /etc/gitolite \
35 /home/git/etc \
36 /home/git/etc/ssh
37 sudo install -d -m 751 -o git -g git \
38 /home/git
39 sudo install -d -m 2770 -o git-data -g git-data \
40 /home/git/pub
41 sudo install -d -m 1771 -o git -g git \
42 /home/git/log
43 sudo install -d -m 2770 -o git -g log-git \
44 /home/git/log/gitolite \
45 /home/git/log/gitolite/perf
46 sudo install -d -m 3771 -o git -g git \
47 /home/git/hooks
48 sudo ln -fns /etc/gitolite /home/git/etc/gitolite
49 sudo ln -fns /etc/gitweb /home/git/etc/gitweb
50 sudo ln -fns etc/gitolite/gitolite.rc /home/git/.gitolite.rc
51 sudo ln -fns etc/ssh /home/git/.ssh
52 sudo install -m 770 -o git -g git /dev/stdin \
53 /home/git/etc/gitolite/gitolite.rc <<-EOF
54 #\$ADMIN_POST_UPDATE_CHAINS_TO = "hooks/post-update.secondary";
55 #\$BIG_INFO_CAP = 20;
56 #\$ENV{GL_SLAVES} = 'gitolite@server2 gitolite@server3';
57 # NOTE: Please use single quotes, not double quotes.
58 #\$GITWEB_URI_ESCAPE = 0;
59 \$GIT_PATH = "";
60 #\$GL_ADC_PATH = "";
61 \$GL_ADMINDIR = \$ENV{HOME} . "/etc/gitolite";
62 #\$GL_ALL_INCLUDES_SPECIAL = 0;
63 #\$GL_ALL_READ_ALL = 0;
64 \$GL_BIG_CONFIG = 0;
65 \$GL_CONF = "\$GL_ADMINDIR/conf/gitolite.conf";
66 \$GL_CONF_COMPILED = "\$GL_ADMINDIR/conf/gitolite.conf.pm";
67 #\$GL_GET_MEMBERSHIPS_PGM = "/usr/local/bin/expand-ldap-user-to-groups"
68 \$GL_GITCONFIG_KEYS = "gitweb\\..* hooks\\..*";
69 #\$GL_HOSTNAME = "git.$local_domainname";
70 # NOTE: read doc/mirroring.mkd COMPLETELY before setting this.
71 #\$GL_HTTP_ANON_USER = "mob";
72 \$GL_KEYDIR = "\$GL_ADMINDIR/keydir";
73 \$GL_LOGT = \$ENV{HOME} . "/log/gitolite/%y-%m-%d.log";
74 #\$GL_NICE_VALUE = 0;
75 \$GL_NO_CREATE_REPOS = 0;
76 \$GL_NO_DAEMON_NO_GITWEB = 0;
77 \$GL_NO_SETUP_AUTHKEYS = 0;
78 \$GL_PACKAGE_CONF = "/usr/share/gitolite/conf";
79 \$GL_PACKAGE_HOOKS = "/usr/share/gitolite/hooks";
80 #\$GL_PERFLOGT = \$ENV{HOME} . "/log/gitolite/perf/%y-%m-%d.log";
81 #\$GL_REF_OR_FILENAME_PATT = qr(^[0-9a-zA-Z][0-9a-zA-Z._\\@/+ :,-]*\$);
82 \$GL_SITE_INFO = "git.$local_domainname";
83 #\$GL_SLAVE_MODE = 0;
84 \$GL_WILDREPOS = 0;
85 #\$GL_WILDREPOS_DEFPERMS = 'R @all';
86 \$GL_WILDREPOS_PERM_CATS = "READERS WRITERS";
87 \$HTPASSWD_FILE = "";
88 \$PROJECTS_LIST = \$ENV{HOME} . "/etc/gitweb/projects.list";
89 \$REPO_BASE = "pub";
90 \$REPO_UMASK = 0007;
91 \$RSYNC_BASE = "";
92 \$SVNSERVE = "";
93 #\$UPDATE_CHAINS_TO = "hooks/update.secondary";
94 \$WEB_INTERFACE = "gitweb";
95 1;
96 EOF
97 sudo install -m 600 -o git -g git \
98 "$tool"/var/pub/ssh/git.key \
99 /home/git/etc/ssh/git.pub
100 sudo -u git \
101 GL_RC=/home/git/etc/gitolite/gitolite.rc \
102 GIT_AUTHOR_NAME=git \
103 gl-setup -q /home/git/etc/ssh/git.pub git
104 for d in doc logs src
105 do test ! -d /home/git/etc/gitolite/"$d" ||
106 rmdir /home/git/etc/gitolite/"$d"
107 done