chiark / gitweb /
wip
[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         set +x
30         for f in $d/transfer.tmp/*.git; do
31                 cp $d/repos/_template/description $f/description
32                 touch $f/git-daemon-export-ok
33         done
34
35         cat <<END >$d/transfer.run
36                 #!/bin/sh -ex
37                 cd $d/transfer.tmp
38                 rsync -rltHxp --delete *.git $d/repos/
39                 # _template
40                 echo done locally, copying...
41
42                 distrodir=/srv/dgit.debian.org/dispatch-dir/distro\=debian
43                 $distrodir/mirror-hook $distrodir/mirror-hook all
44                 echo done all.
45 END
46         chmod +x $d/transfer.run
47 '
48
49 : "on gideon
50         sudo -u dgit bash
51         $d/transfer.run
52 "