chiark / gitweb /
copy-alioth-to-gideon: fix irker (!)
[dgit-junk.git] / copy-alioth-to-gideon
1 #!/bin/bash
2 set -ex
3
4 d=/srv/dgit.debian.org
5
6 ssh iwj@gideon.debian.org "
7         set -ex
8
9         d=$d"'
10
11         cd $d
12         mkdir -p transfer.tmp
13         cd transfer.tmp
14
15         rsync -rltHxp --delete iwj@git.debian.org:/git/dgit-repos/repos/. .
16
17         find \(         \( ! -type f ! -type d \) \
18                 -o      -perm +5002 -o \! -perm +2555 \
19                 -o      -type d \! -perm +2775 \
20                 -o      -path \*/hooks/\* ! -name \*.sample \
21                 \) -ls \
22                 >$d/transfer.bad
23         if [ -s $d/transfer.bad ]; then
24                 head $d/transfer.bad
25                 echo >&2 " BAD"
26                 exit 1
27         fi
28
29         (
30          cd $d/transfer.tmp
31          mv irker.git irker.arrgh
32          cp -a _template irker.git
33          cd irker.git
34          git fetch -p ../irker.arrgh "+refs/heads/dgit/*:refs/dgit/*"
35         )
36
37         set +x
38         for f in $d/transfer.tmp/*.git; do
39                 cp $d/repos/_template/description $f/description
40                 touch $f/git-daemon-export-ok
41         done
42
43         cat <<END >$d/transfer.run
44                 #!/bin/sh -ex
45                 cd $d/transfer.tmp
46                 rsync -rltHxp --delete *.git $d/repos/
47                 # _template
48                 echo done locally, copying...
49
50                 distrodir=$d/dispatch-dir/distro\=debian
51                 \$distrodir/mirror-hook \$distrodir all
52                 echo done all.
53 END
54         chmod +x $d/transfer.run
55 '
56
57 : "on gideon
58         sudo -u dgit bash
59         $d/transfer.run
60 "