blob: d7b4b6c887ca520ee619e6a97d8725fb32dc6323 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#!/bin/bash
# Source makepkg.conf; fail if it is not found
if [ -r "/etc/makepkg.conf" ]; then
source "/etc/makepkg.conf"
else
echo "/etc/makepkg.conf not found!"
exit 1
fi
# Source user-specific makepkg.conf overrides
if [ -r ~/.makepkg.conf ]; then
source ~/.makepkg.conf
fi
cmd=$(basename $0)
if [ ! -f PKGBUILD ]; then
echo "No PKGBUILD file"
exit 1
fi
if [ -z "$CARCH" ]; then
echo "CARCH must be set to a recognized value!"
exit 1
fi
source PKGBUILD
pkgbase=${pkgbase:-${pkgname[0]}}
# set up repo-specific opts depending on how we were called
server="gerolde.archlinux.org"
if [ "$cmd" == "extrapkg" ]; then
repo="extra"
elif [ "$cmd" == "corepkg" ]; then
repo="core"
elif [ "$cmd" == "testingpkg" ]; then
repo="testing"
elif [ "$cmd" == "communitypkg" ]; then
repo="community"
server="aur.archlinux.org"
elif [ "$cmd" == "community-testingpkg" ]; then
repo="community-testing"
server="aur.archlinux.org"
else
if [ $# -eq 0 ]; then
echo "usage: commitpkg <reponame> [-l limit] [commit message]"
exit 1
fi
repo="$1"
shift
fi
# see if any limit options were passed, we'll send them to SCP
unset scpopts
if [ "$1" = "-l" ]; then
scpopts="$1 $2"
shift 2
fi
for _pkgname in ${pkgname[@]}; do
pkgfile=${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}
anypkgfile=${_pkgname}-${pkgver}-${pkgrel}-any${PKGEXT}
if [ ! -f $pkgfile ]; then
if [ -f $PKGDEST/$pkgfile ]; then
pkgfile=$PKGDEST/$pkgfile
elif [ -f $anypkgfile ]; then
pkgfile=$anypkgfile
CARCH=any
elif [ -f $PKGDEST/$anypkgfile ]; then
pkgfile=$PKGDEST/$anypkgfile
CARCH=any
else
echo "File $pkgfile doesn't exist"
exit 1
fi
fi
# combine what we know into a variable
uploadto="staging/${repo}/$(basename ${pkgfile})"
scp ${scpopts} "${pkgfile}" "${server}:${uploadto}"
if [ "$(md5sum "${pkgfile}" | cut -d' ' -f1)" != "$(ssh ${server} md5sum "${uploadto}" | cut -d' ' -f1)" ]; then
echo "File got corrupted during upload, cancelled."
exit 1
else
echo "File integrity okay."
fi
if [ $? -ne 0 ]; then
echo "Cancelled"
exit 1
fi
echo "===> Uploaded $pkgfile"
done
if [ "$1" != "" ]; then
svn commit -m "upgpkg: $pkgbase $pkgver-$pkgrel
$1" > /dev/null
if [ $? -ne 0 ]; then
echo "Cancelled"
exit 1
fi
echo "===> Commited with \"upgpkg: $pkgbase $pkgver-$pkgrel
$1\" message"
else
svn commit
if [ $? -ne 0 ]; then
echo "Cancelled"
exit 1
fi
echo "===> Commited"
fi
archrelease $repo-$CARCH
if [ $? -ne 0 ]; then
echo "Cancelled"
exit 1
fi
echo "===> Tagged for $repo-$CARCH"
if [ "$CARCH" == "any" ]; then
if [ -d ../repos/${repo}-i686 -a -d ../repos/${repo}-x86_64 ]; then
pushd ..
svn rm $repo-i686
svn rm $repo-x86_64
svn commit -m "removed $repo-i686 and $repo-x86_64 for $pkgname"
popd
fi
fi
# vim:ft=sh:ts=4:sw=4:et:
|