From 61999f475a6af79c94ff56331687b2388adb022b Mon Sep 17 00:00:00 2001 From: Ingo Ruhnke Date: Sun, 25 Jun 2006 00:49:48 +0000 Subject: [PATCH] - added script that allows to upload files to the wiki from the shell SVN-Revision: 3733 --- tools/upload_supertux_wiki.sh | 103 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100755 tools/upload_supertux_wiki.sh diff --git a/tools/upload_supertux_wiki.sh b/tools/upload_supertux_wiki.sh new file mode 100755 index 000000000..9fc6254ad --- /dev/null +++ b/tools/upload_supertux_wiki.sh @@ -0,0 +1,103 @@ +#! /bin/sh + +# This is a little Shell Script that allows you to upload files to the +# SuperTux MediaWiki. To use it to create a file ~/.supertux-wiki.sh +# and fill it with: +# +# WIKI_USERNAME="" +# WIKI_PASSWORD="" +# +# Then just upload files with: +# +# upload_supertux_wiki.sh your_file.png "Your Description" +# + +set -e + +function rc_error() { + echo "Create a file ~/.supertux-wiki.sh with the following syntax: " + echo "" + echo "WIKI_USERNAME=your_username" + echo "WIKI_PASSWORD=your_password" + echo "" + exit 1; +} + +if [ ! -f ~/.supertux-wiki.sh ]; then + echo "Error: Couldn't find ~/.supertux-wiki.sh" + echo "" + rc_error +fi + +source ~/.supertux-wiki.sh + +if [ -z "$WIKI_PASSWORD" -o -z "$WIKI_USERNAME" ]; then + echo "Error: WIKI_PASSWORD or WIKI_USERNAME not set" + echo "" + rc_error +fi + +usage="\ +Usage: $0 [OPTIONS] FILENAME DESCRIPTION + + --overwrite Overwrite a file in the wiki with the same filename +" + +if [ ! $# -eq 2 ]; then + if [ $# -eq 3 -a "x$1" = "x--overwrite" ]; then + FILENAME="$2" + DESCRIPTION="$3" + IGNORE_WARNING="-F wpIgnoreWarning=1" + else + echo "${usage}" 1>&2 + exit 1 + fi +else + FILENAME="$1" + DESCRIPTION="$2" + IGNORE_WARNING="" +fi + +if [ ! -r "$FILENAME" ]; then + echo "Error: Can't read $FILENAME" + exit 1 +fi + +# MD5SUM=`md5sum "$1" | cut -c "1-32"` +# echo "MD5Sum: $MD5SUM" + +STEP1_FILE="`tempfile`" +STEP2_FILE="`tempfile`" +COOKIES_FILE="`tempfile`" + +curl \ + -c "$COOKIES_FILE" \ + -F "wpName=$WIKI_USERNAME" \ + -F "wpPassword=$WIKI_PASSWORD" \ + -F "wpLoginattempt=Log in" \ + "http://supertux.berlios.de/wiki/index.php?title=Special:Userlogin&action=submitlogin&returnto=Main_Page" > $STEP1_FILE + +curl \ + -b "${COOKIES_FILE}" \ + -F "wpUploadFile=@${FILENAME}" \ + -F "wpUploadDescription='${DESCRIPTION}'" \ + -F "wpUploadAffirm=1" \ + -F "wpUpload='Upload file'" \ + $IGNORE_WARNING \ + "http://supertux.berlios.de/wiki/index.php/Special:Upload" > $STEP2_FILE + +echo "------------------------------------------------------------------------" + +links -dump $STEP2_FILE | sed "s/ *Views/## EOF ##/;/## EOF ##/q" + +rm -f "$STEP1_FILE" "$STEP2_FILE" "$COOKIES_FILE" + +echo "" +echo "Link to the Image list:" +echo " http://supertux.berlios.de/wiki/index.php/Special:Imagelist" +echo " " +echo "Link to the Image page:" +echo " http://supertux.berlios.de/wiki/index.php/Image:"`basename $FILENAME | sed -n "s/^\(.\).*/\1/p" | tr '[a-z]' '[A-Z]'``basename $FILENAME | sed "s/^.\(.*\)/\1/"` +echo "" + +# EOF # -- 2.11.0