Updated addon repository URL and improved debug output on download
[supertux.git] / tools / upload_supertux_wiki.sh
1 #! /bin/bash
2
3 # This is a little Shell Script that allows you to upload files to the
4 # SuperTux MediaWiki. To use it to create a file ~/.supertux-wiki.sh
5 # and fill it with:
6 #
7 # WIKI_USERNAME=""
8 # WIKI_PASSWORD=""
9 #
10 # Then just upload files with:
11 #
12 #   upload_supertux_wiki.sh your_file.png "Your Description"
13 #
14
15 set -e
16
17 function rc_error() {
18         echo "Create a file ~/.supertux-wiki.sh with the following syntax: "
19         echo ""
20         echo "WIKI_USERNAME=\"your_username\""
21         echo "WIKI_PASSWORD=\"your_password\""
22         echo ""
23         exit 1;
24 }
25
26 if [ ! -f ~/.supertux-wiki.sh ]; then
27         echo "Error: Couldn't find ~/.supertux-wiki.sh"
28         echo ""
29         rc_error
30 fi
31
32 source "$HOME/.supertux-wiki.sh"
33
34 if [ -z "$WIKI_PASSWORD" -o -z "$WIKI_USERNAME" ]; then
35         echo "Error: WIKI_PASSWORD or WIKI_USERNAME not set"
36         echo ""
37         rc_error
38 fi
39
40 usage="\
41 Usage: $0 [OPTIONS] FILENAME DESCRIPTION
42
43   --overwrite    Overwrite a file in the wiki with the same filename
44 "
45
46 if [ ! $# -eq 2 ]; then
47         if [ $# -eq 3 -a "x$1" = "x--overwrite" ]; then
48                 FILENAME="$2"
49                 DESCRIPTION="$3"
50                 IGNORE_WARNING="-F wpIgnoreWarning=1"
51         else
52                 echo "${usage}" 1>&2
53                 exit 1
54         fi
55 else
56         FILENAME="$1"
57         DESCRIPTION="$2"
58         IGNORE_WARNING=""
59 fi
60
61 if [ ! -r "$FILENAME" ]; then
62         echo "Error: Can't read $FILENAME"
63         exit 1
64 fi
65
66 # MD5SUM=`md5sum "$1" | cut -c "1-32"`
67 # echo "MD5Sum: $MD5SUM"
68
69 STEP1_FILE="`tempfile`"
70 STEP2_FILE="`tempfile`"
71 COOKIES_FILE="`tempfile`"
72
73 curl \
74         -c "$COOKIES_FILE" \
75         -F "wpName=$WIKI_USERNAME" \
76         -F "wpPassword=$WIKI_PASSWORD" \
77         -F "wpLoginattempt=Log in" \
78         "http://supertux.lethargik.org/wiki/index.php?title=Special:Userlogin&action=submitlogin&returnto=Main_Page" > "$STEP1_FILE"
79
80 curl \
81         -b "${COOKIES_FILE}" \
82         -F "wpUploadFile=@${FILENAME}" \
83         -F "wpUploadDescription=${DESCRIPTION}" \
84         -F "wpUploadAffirm=1" \
85         -F "wpUpload='Upload file'" \
86         $IGNORE_WARNING \
87         "http://supertux.lethargik.org/wiki/Special:Upload" > "$STEP2_FILE"
88
89 echo "------------------------------------------------------------------------"
90
91 # links -dump $STEP2_FILE | sed "s/ *Views/## EOF ##/;/## EOF ##/q"
92 links -dump $STEP2_FILE
93
94 rm -f "$STEP1_FILE" "$STEP2_FILE" "$COOKIES_FILE"
95
96 WIKI_FILENAME="$(basename "$FILENAME" | sed -n "s/^\(.\).*/\1/p" | tr '[a-z]' '[A-Z]')$(basename "$FILENAME" | sed "s/^.\(.*\)/\1/")"
97
98 echo ""
99 echo "Link to the Image list:"
100 echo "  http://supertux.lethargik.org/wiki/index.php/Special:Imagelist"
101 echo " "
102 echo "Link to the Image page:"
103 echo "  http://supertux.lethargik.org/wiki/index.php/Image:${WIKI_FILENAME}"
104 echo ""
105 echo "Wiki Link (first without thumbnail, second with):"
106 echo "  [[:Image:$WIKI_FILENAME|$DESCRIPTION]]"
107 echo "  [[Image:$WIKI_FILENAME|$DESCRIPTION]]"
108 echo ""
109
110 # EOF #