- print out some more usefull links
[supertux.git] / tools / upload_supertux_wiki.sh
1 #! /bin/sh
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 ~/.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.berlios.de/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.berlios.de/wiki/index.php/Special:Upload" > $STEP2_FILE
88
89 echo "------------------------------------------------------------------------"
90
91 links -dump $STEP2_FILE  | sed "s/ *Views/## EOF ##/;/## EOF ##/q"
92
93 rm -f "$STEP1_FILE" "$STEP2_FILE" "$COOKIES_FILE"
94
95 WIKI_FILENAME=$(basename $FILENAME | sed -n "s/^\(.\).*/\1/p" | tr '[a-z]' '[A-Z]')$(basename $FILENAME | sed "s/^.\(.*\)/\1/")
96
97 echo ""
98 echo "Link to the Image list:"
99 echo "  http://supertux.berlios.de/wiki/index.php/Special:Imagelist"
100 echo " "
101 echo "Link to the Image page:" 
102 echo "  http://supertux.berlios.de/wiki/index.php/Image:"$WIKI_FILENAME
103 echo ""
104 echo "Wiki Link (first without thumbnail, second with):"
105 echo "  [[:Image:$WIKI_FILENAME|$DESCRIPTION]]"
106 echo "  [[Image:$WIKI_FILENAME|$DESCRIPTION]]"
107 echo ""
108
109 # EOF #