X-Git-Url: http://git.plutz.net/?p=busy;a=blobdiff_plain;f=actions%2Fwikimeta.sh;fp=actions%2Fwikimeta.sh;h=74b8ac963560b80359e6ef1c5d447295e741c7ec;hp=0000000000000000000000000000000000000000;hb=f485895094cd72318b46f39689c3ba954eb37411;hpb=904730d1782749bfac15b0344fe5782433f3099b diff --git a/actions/wikimeta.sh b/actions/wikimeta.sh new file mode 100755 index 0000000..74b8ac9 --- /dev/null +++ b/actions/wikimeta.sh @@ -0,0 +1,49 @@ +#!/bin/zsh +# Copyright 2011 - 2014 Paul Haensch +# This file is part of Busy +# +# Busy is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Busy is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Busy. If not, see . + +$ACL_WIKIEDIT || echo "Location: //${HTTP_HOST}/?p=Error&i=noaccess\n\n" +$ACL_WIKIEDIT || exit 0 + +info="$(egrep -o '(^|&)i=[0-9]{10}_[0-9]{3}(&|$)' <<<"${QUERY_STRING}" |tr -d '&i=')" +info="$(echo -E "$_GET[\"i\"]" |grep -Ex '[0-9]{10}_[0-9]{3}')" + +[ -z "$info" ] && info="$(date +%s)_$(apg -M N -a 1 -n 1 -m 3 -x 3)" +descfile="$_DATA/Wiki/$info.meta" +commfile="$_DATA/Wiki/$info.comment.$(date +%s)_$(apg -M N -a 1 -n 1 -m 3 -x 3)" + +[ -f "$_DATA/Wiki/$info.lock" ] && rm "$_DATA/Wiki/$info.lock" +anchor=$(ls "$_DATA/Wiki" |grep -A2 $info |grep '.meta$' |tail -n1 |cut -d. -f1) + +cgi_post +title="$_POST[\"title\"]" +description="$_POST[\"desc\"]" +comment="$_POST[\"comm\"]" +[ -n "$_POST[\"cancel\"]" ] && cancel=true + +if [ -z "$cancel" -a -n "$comment" ]; then + touch "$_DATA/Wiki/$info" + echo -e "author=${USER}" > "$commfile" + echo -e "${comment}" >> "$commfile" + echo -n "Location: //${HTTP_HOST}/?p=Wiki&i=$info\n\n" +elif [ -z "$cancel" -a -n "$description" ]; then + touch "$_DATA/Wiki/$info" + echo -e "title=${title}" > "$descfile" + echo -e "description=${description}" >> "$descfile" + echo -n "Location: //${HTTP_HOST}/?p=Wiki#$anchor\n\n" +elif [ -n "$cancel" ]; then + echo -n "Location: //${HTTP_HOST}/?p=Wiki#$anchor\n\n" +fi