source: trunk/debathena/scripts/daupload-release @ 22700

Revision 22700, 5.4 KB checked in by ghudson, 16 years ago (diff)
Allow apt repository location to be specified with $DEBATHENA_APT. The default value is the old hardcoded location /mit/debathena/apt. * debathena/scripts/dadch, debathena/scripts/daequivsupload, debathena/scripts/daupload-release: Set default value of $DEBATHENA_APT and use it in place ot /mit/debathena/apt.
  • Property svn:executable set to *
Line 
1#!/bin/sh
2set -e
3
4# Usage: daupload-release [-A] [-S] CHANGESFILE
5#        daupload-beta [-A] [-S] CHANGESFILE
6
7# After a package has been built for all Debian/Ubuntu versions and
8# platforms (typically using "da sbuildhack DSCFILE"), this script
9# uploads the package into the release or beta apt repository.  If -A
10# is specified, only one architecture per Debian/Ubuntu version is
11# uploaded.  If -S is specified, only the source package is uploaded.
12
13# Upon completion, moves all of the generated files into the "built"
14# subdirectory.
15
16: ${DEBATHENA_APT=/mit/debathena/apt}
17
18case "$(basename "$0")" in
19    daupload-release)
20        repo=$DEBATHENA_APT
21        ;;
22    daupload-beta)
23        repo=${DEBATHENA_APT}-beta
24        ;;
25    *)
26        echo "Unknown repo." >&2
27        exit 1
28        ;;
29esac
30
31v () {
32    echo "$@"
33    "$@"
34}
35
36A=0
37if [ "$1" = "-A" ]; then A=1; shift; fi
38S=0
39if [ "$1" = "-S" ]; then S=1; shift; fi
40
41change=$1
42cd "$(dirname "$change")"
43change=$(basename "$change")
44
45check () {
46    [ -s "$1" ] || missing="$missing$1 "
47}
48uncheck () {
49    ! [ -s "$1" ] || missing="$missing-$1 "
50}
51
52missing=
53[ -s "$change" ]
54if [ $S -ne 1 ]; then
55    check "${change%_source.changes}~debian3.1_i386.changes"
56    check "${change%_source.changes}~debian4.0_amd64.changes"
57    check "${change%_source.changes}~debian4.1~0.1_amd64.changes"
58    check "${change%_source.changes}~ubuntu6.06_amd64.changes"
59    check "${change%_source.changes}~ubuntu6.10_amd64.changes"
60    check "${change%_source.changes}~ubuntu7.04_amd64.changes"
61    check "${change%_source.changes}~ubuntu7.10_amd64.changes"
62    if [ $A -eq 1 ]; then
63        uncheck "${change%_source.changes}~debian4.0_i386.changes"
64        uncheck "${change%_source.changes}~debian4.1~0.1_i386.changes"
65        uncheck "${change%_source.changes}~ubuntu6.06_i386.changes"
66        uncheck "${change%_source.changes}~ubuntu6.10_i386.changes"
67        uncheck "${change%_source.changes}~ubuntu7.04_i386.changes"
68        uncheck "${change%_source.changes}~ubuntu7.10_i386.changes"
69    else
70        check "${change%_source.changes}~debian4.0_i386.changes"
71        check "${change%_source.changes}~debian4.1~0.1_i386.changes"
72        check "${change%_source.changes}~ubuntu6.06_i386.changes"
73        check "${change%_source.changes}~ubuntu6.10_i386.changes"
74        check "${change%_source.changes}~ubuntu7.04_i386.changes"
75        check "${change%_source.changes}~ubuntu7.10_i386.changes"
76    fi
77fi
78
79if [ -n "$missing" ]; then
80    echo "Missing $missing" >&2
81    echo -n "Continue? [y/N]"
82    read a
83    [ "$a" = "y" ]
84fi
85
86REPREPRO="v reprepro -Vb $repo"
87REPREPROI="$REPREPRO --ignore=wrongdistribution"
88
89$REPREPROI include sarge "$change"
90$REPREPROI include etch "$change"
91$REPREPROI include lenny "$change"
92$REPREPROI include dapper "$change"
93$REPREPROI include edgy "$change"
94$REPREPROI include feisty "$change"
95$REPREPROI include gutsy "$change"
96
97if [ $S -ne 1 ]; then
98    $REPREPRO include sarge "${change%_source.changes}~debian3.1_i386.changes"
99    [ $A -eq 1 ] || $REPREPRO include etch "${change%_source.changes}~debian4.0_i386.changes"
100    $REPREPRO include etch "${change%_source.changes}~debian4.0_amd64.changes"
101    [ $A -eq 1 ] || $REPREPRO include lenny "${change%_source.changes}~debian4.1~0.1_i386.changes"
102    $REPREPRO include lenny "${change%_source.changes}~debian4.1~0.1_amd64.changes"
103    [ $A -eq 1 ] || $REPREPRO include dapper "${change%_source.changes}~ubuntu6.06_i386.changes"
104    $REPREPRO include dapper "${change%_source.changes}~ubuntu6.06_amd64.changes"
105    [ $A -eq 1 ] || $REPREPRO include edgy "${change%_source.changes}~ubuntu6.10_i386.changes"
106    $REPREPRO include edgy "${change%_source.changes}~ubuntu6.10_amd64.changes"
107    [ $A -eq 1 ] || $REPREPRO include feisty "${change%_source.changes}~ubuntu7.04_i386.changes"
108    $REPREPRO include feisty "${change%_source.changes}~ubuntu7.04_amd64.changes"
109    [ $A -eq 1 ] || $REPREPRO include gutsy "${change%_source.changes}~ubuntu7.10_i386.changes"
110    $REPREPRO include gutsy "${change%_source.changes}~ubuntu7.10_amd64.changes"
111fi
112
113
114changes=$change
115changes=$changes\ ${change%_source.changes}~debian3.1_i386.changes
116[ $A -eq 1 ] || changes=$changes\ ${change%_source.changes}~debian4.0_i386.changes
117changes=$changes\ ${change%_source.changes}~debian4.0_amd64.changes
118[ $A -eq 1 ] || changes=$changes\ ${change%_source.changes}~debian4.1~0.1_i386.changes
119changes=$changes\ ${change%_source.changes}~debian4.1~0.1_amd64.changes
120[ $A -eq 1 ] || changes=$changes\ ${change%_source.changes}~ubuntu6.06_i386.changes
121changes=$changes\ ${change%_source.changes}~ubuntu6.06_amd64.changes
122[ $A -eq 1 ] || changes=$changes\ ${change%_source.changes}~ubuntu6.10_i386.changes
123changes=$changes\ ${change%_source.changes}~ubuntu6.10_amd64.changes
124[ $A -eq 1 ] || changes=$changes\ ${change%_source.changes}~ubuntu7.04_i386.changes
125changes=$changes\ ${change%_source.changes}~ubuntu7.04_amd64.changes
126[ $A -eq 1 ] || changes=$changes\ ${change%_source.changes}~ubuntu7.10_i386.changes
127changes=$changes\ ${change%_source.changes}~ubuntu7.10_amd64.changes
128
129files=${change%.changes}.build\ $changes
130origfiles=
131for change in $changes; do
132    files=$files\ $(perl -0ne '$_ =~ /\nFiles: *\n(( [^\n]*\n)*)/; print $1;' "$change" | awk '{print $5}' | grep -v '\.orig\.tar\.gz$' || :)
133    origfiles=$origfiles\ $(perl -0ne '$_ =~ /\nFiles: *\n(( [^\n]*\n)*)/; print $1;' "$change" | awk '{print $5}' | grep '\.orig\.tar\.gz$' || :)
134done
135
136built=built/
137[ -d "$built" ] || mkdir "$built"
138mv -i $files "$built"
139if [ -n "$origfiles" ]; then
140    for orig in $origfiles; do
141        [ -e "$built/$orig" ] || cp -ai "$orig" "$built/"
142    done
143fi
Note: See TracBrowser for help on using the repository browser.