chiark / gitweb /
dpkg-quilt-setup: workaround for http://bugs.debian.org/572204
[bin.git] / ubuntu-daily
1 #! /bin/sh
2
3 PROJECT=
4 CURRENT_DIST=maverick
5 DIST="$CURRENT_DIST"
6 BASE=antimony:cdimage/www/full
7 RSYNC=false
8
9 usage () {
10         cat <<EOF
11 Usage: $0 [options] image_type architecture
12
13 Options:
14   -f|--flavour FLAVOUR          Flavour (default: ubuntu).
15   -d|--dist DIST                Distribution (default: maverick).
16   -a|--anonymous                Don't use privileged access.
17   -r|--rsync                    Force rsync.
18 EOF
19 }
20
21 eval set -- "$(getopt -o f:d:ar -l help,flavour:,dist:,anonymous,rsync -- "$@")" || { usage >&2; exit 2; }
22 while :; do
23         case $1 in
24                 --help)
25                         usage
26                         exit 0
27                         ;;
28                 -f|--flavour)
29                         PROJECT="$2"
30                         if [ "$PROJECT" = ubuntu ]; then
31                                 PROJECT=
32                         fi
33                         shift 2
34                         ;;
35                 -d|--dist)
36                         DIST="$2"
37                         shift 2
38                         ;;
39                 -a|--anonymous)
40                         BASE=cdimage.ubuntu.com::cdimage
41                         shift
42                         ;;
43                 -r|--rsync)
44                         RSYNC=:
45                         shift
46                         ;;
47                 --)     shift; break ;;
48                 *)      usage >&2; exit 2;
49         esac
50 done
51
52 case $2 in
53         hppa*|ia64*|lpia*|powerpc*|sparc*)
54                 PREFIX=ports/
55                 ;;
56         *)
57                 PREFIX=
58                 ;;
59 esac
60 if [ "$DIST" != "$CURRENT_DIST" ]; then
61         PREFIX="$DIST/$PREFIX"
62 fi
63 case $1 in
64         server)
65                 PREFIX="ubuntu-server/$PREFIX"
66                 ;;
67         jeos)
68                 PREFIX="jeos/$PREFIX"
69                 ;;
70         mid)
71                 PREFIX="ubuntu-mid/$PREFIX"
72                 ;;
73 esac
74 case $1 in
75         live|desktop|mid)
76                 IMAGE_TYPE=${IMAGE_TYPE:-${PREFIX}daily-live}
77                 ;;
78         dvd)
79                 IMAGE_TYPE=${IMAGE_TYPE:-${PREFIX}dvd}
80                 ;;
81         *)
82                 IMAGE_TYPE=${IMAGE_TYPE:-${PREFIX}daily}
83                 ;;
84 esac
85 case $1 in
86         mid)
87                 EXTENSION=img
88                 ;;
89         *)
90                 EXTENSION=iso
91                 ;;
92 esac
93
94 case $1 in
95         install|alternate|server|addon|serveraddon|dvd) ;;
96         *)
97                 RSYNC=:
98                 ;;
99 esac
100
101 LOCAL="./${PROJECT:+$PROJECT-}$DIST-$1-$2"
102 REMOTE="$BASE/${PROJECT:+$PROJECT/}$IMAGE_TYPE/current/$DIST-$1-$2"
103
104 if $RSYNC; then
105         ionice -c2 -n7 rsync -avP "$REMOTE.$EXTENSION" "$LOCAL.$EXTENSION"
106 else
107         rsync -avP "$REMOTE.jigdo" "$LOCAL.jigdo"
108         if [ "$PROJECT" ]; then
109                 sed -i "s/=$DIST-$1-$2/=$PROJECT-$DIST-$1-$2/g" "$LOCAL.jigdo"
110         fi
111         rsync -avP "$REMOTE.template" "$LOCAL.template"
112         EXISTING=false
113         if [ -e "$LOCAL.iso" ]; then
114                 EXISTING=:
115                 mv "$LOCAL.iso" "$LOCAL.iso.old"
116                 mkdir -p "old-$2"
117                 sudo mount -o loop "$LOCAL.iso.old" "old-$2"
118         fi
119         ionice -c2 -n7 jigdo-lite "$LOCAL.jigdo"
120         if $EXISTING; then
121                 sudo umount "old-$2" || true
122                 rm -f "$LOCAL.iso.old"
123         fi
124 fi