4 # Morgan Deters <mdeters@cs.nyu.edu>
5 # Wed, 26 Sep 2012 09:40:10 -0400
9 echo "usage: `basename $0` bugids.." >&2
13 while [ $# -gt 0 ]; do
19 if which wget
&>/dev
/null
; then
21 elif which curl
&>/dev
/null
; then
24 echo "Please install wget or curl." >&2;
30 if which wget
&>/dev
/null
; then
31 tmpfile
="$(mktemp get_bug_attach.$$.XXXXXXXX)"
32 filename
="$(wget -qS -O "$tmpfile" "$1" 2>&1 | grep 'Content-disposition: attachment' | sed 's,.*filename="\
(.
*\
)".*,\1,')"
33 ext
="$(echo "$filename" | sed 's,.*\.\(.*\),\1,')"
34 if [ -e "$2.$ext" ] && ! diff -q "$tmpfile" "$2.$ext" &>/dev
/null
; then
36 while [ -e "$2$c.$ext" ] && ! diff -q "$tmpfile" "$2$c.$ext" &>/dev
/null
; do
37 c
=$
(echo $c |
tr a-y b-z
)
39 mkdir
-p "$(dirname "$2")"
40 mv "$tmpfile" "$2$c.$ext"
43 mkdir
-p "$(dirname "$2")"
44 mv "$tmpfile" "$2.$ext"
47 elif which curl
&>/dev
/null
; then
48 tmpfile
="$(mktemp get_bug_attach.$$.XXXXXXXX)"
49 filename
="$(curl --head "$1" 2>&1 | grep 'Content-disposition: attachment' | sed 's,.*filename="\
(.
*\
)".*,\1,')"
50 curl
"$1" >"$tmpfile" 2>/dev
/null
51 ext
="$(echo "$filename" | sed 's,.*\.\(.*\),\1,')"
52 if [ -e "$2.$ext" ] && ! diff -q "$tmpfile" "$2.$ext" &>/dev
/null
; then
54 while [ -e "$2$c.$ext" ] && ! diff -q "$tmpfile" "$2$c.$ext" &>/dev
/null
; do
55 c
=$
(echo $c |
tr a-y b-z
)
57 mkdir
-p "$(dirname "$2")"
58 mv "$tmpfile" "$2$c.$ext"
61 mkdir
-p "$(dirname "$2")"
62 mv "$tmpfile" "$2.$ext"
66 echo "Please install wget or curl." >&2;
73 webcat
"http://church.cims.nyu.edu/bugs/show_bug.cgi?id=$bugid" 2>/dev
/null \
74 |
grep ' href="attachment.cgi?id=[0-9][0-9]*' \
75 |
sed 's,.* href="attachment.cgi?id=\([0-9][0-9]*\).*,\1,' \
79 printf "%-30s " "Downloading attachment $attachment..."
80 webget
"http://church.cims.nyu.edu/bugs/attachment.cgi?id=$attachment" "test/regress/regress0/bug$bugid"
84 if [ $count -eq 0 ]; then
85 echo "There are no bug attachments for bug #$bugid."
88 [ $count -eq 1 ] && s
=
89 echo "Downloaded $count bug attachment$s for bug #$bugid."