updated on Thu Jan 26 16:09:46 UTC 2012
[aur-mirror.git] / aurupload / aurupload
blob60473240541b8c9eea74052061ff724a79ad90da
1 #!/bin/bash
3 set -u
4 set -e
6 declare -A categorys
7 categorys[daemons]=2
8 categorys[devel]=3
9 categorys[editors]=4
10 categorys[emulators]=5
11 categorys[games]=6
12 categorys[gnome]=7
13 categorys[i18n]=8
14 categorys[kde]=9
15 categorys[kernels]=19
16 categorys[lib]=10
17 categorys[modules]=11
18 categorys[multimedia]=12
19 categorys[network]=13
20 categorys[office]=14
21 categorys[science]=15
22 categorys[system]=16
23 categorys[x11]=17
24 categorys[xfce]=18
26 verbose=0
27 if [ "${1:-}" == "-v" ]; then
28 verbose=1
29 shift 1
32 if [ $# -lt 3 ]; then
33 echo "Usage: aurupload <user> <pass> [<category>] <path to src-pkg>"
34 echo "Valid categorys are: ${!categorys[*]}"
35 echo "If pass is -, aurupload asks interactively."
36 exit 1
39 username=$1
40 password=$2
42 if [ "$password" = "-" ]; then
43 stty -echo
44 read -p "Enter your password: " password
45 stty echo
46 echo
49 if [ $# -lt 4 ]; then
50 category=1
51 filename=$3
52 else
53 category=${categorys[$3]:-errorerror}
54 filename=$4
57 if [ $category = "errorerror" ]; then
58 echo "Invalid category"
59 exit 2
62 echo "Logging in..."
64 response=`curl -sSi -F user=$username -F passwd=$password -H 'Expect: ' https://aur.archlinux.org/`
65 sessid=`echo "$response" | awk '/^Set-Cookie: / {print $2}' | tr -d ';'`
67 if [ $verbose -gt 0 ]; then
68 echo "$response"
71 if [ -z "$sessid" ]; then
72 echo "Login failed. Wrong username/password?" >&2
73 exit 1
76 echo "Done, sessionid is $sessid"
78 echo "Uploading file..."
80 response=`curl -sSi -H 'Expect: ' -F pkgsubmit=1 -F category=$category -F pfile=@$filename -b $sessid https://aur.archlinux.org/pkgsubmit.php`
81 error=`echo "$response" | grep 'class="pkgoutput"' | sed 's/\s*<[^>]*>//g'`
82 package=`echo "$response" | awk '/^Location: / {print $2}'`
84 if [ $verbose -gt 0 ]; then
85 echo "$response"
88 if [ "$error" ]; then
89 echo "Error: $error" >&2
90 exit 1
91 else
92 echo "Done, (new) package is https://aur.archlinux.org/$package"