From ec6bd59a03d7106ca41605b9477b05c34265f348 Mon Sep 17 00:00:00 2001 From: paul Date: Tue, 27 Mar 2012 01:42:28 +0000 Subject: [PATCH] implemented cgi backend for admin page svn path=/trunk/; revision=37 --- Admin.page | 3 ++- Settings.page | 1 + project.meta | 6 ++++++ write/projectmeta.cgi | 49 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 Settings.page create mode 100755 write/projectmeta.cgi diff --git a/Admin.page b/Admin.page index c3ec24e..f7bacc2 100644 --- a/Admin.page +++ b/Admin.page @@ -11,7 +11,7 @@ else echo "
-
+

General

Title Display @@ -36,6 +36,7 @@ else
Paypal Address

+
diff --git a/Settings.page b/Settings.page new file mode 100644 index 0000000..f7df9c2 --- /dev/null +++ b/Settings.page @@ -0,0 +1 @@ +#!/bin/zsh diff --git a/project.meta b/project.meta index 533c9b4..b985f72 100644 --- a/project.meta +++ b/project.meta @@ -2,5 +2,11 @@ name=Busy slogan=Letting You do the Work. repoType=svn svnRepo=http://svn.plutz.net/busy +gitRepo= useFlattr=yes flattrThingURL=http://flattr.com/thing/599434/Busy-Software-Project-Management +usePaypal= +paypalAddress= +useBitcoin= +btcAddress= + diff --git a/write/projectmeta.cgi b/write/projectmeta.cgi new file mode 100755 index 0000000..7f95dfd --- /dev/null +++ b/write/projectmeta.cgi @@ -0,0 +1,49 @@ +#!/bin/zsh + +# Copyright 2012 Paul Hänsch +# 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 . + +metafile="../project.meta" + +[ "$HTTPS" = "on" ] && proto=https || proto=http +. ../auth/permissions.sh +$ACL_ADMIN || echo "Location: ${proto}://${HTTP_HOST}/?p=Error&i=noaccess\n\n" +$ACL_ADMIN || exit 0 + +if [ -n "${CONTENT_LENGTH}" -a "${CONTENT_LENGTH}" -gt 0 ]; then +(head -c "${CONTENT_LENGTH}"; echo)|sed 's/&/\n/g' \ + |sed -rn '/^((appName|appSlogan|svnRepo|gitRepo|flattrThingURL|paypalAddress|btcAddress)=.*|repoType=(svn|git)|(useFlattr|usePaypal|useBitcoin)=yes)$/{ + s:\+: :g;s:%:\\x:g;s:^([a-zA-Z0-9_+-]+)=(.*)$:\1='"'\2'"':;p}' \ + |while line="$(line)"; do + eval "$(echo -e "$line" |tr -d '\n\r')" + done +fi + +echo "\ +name=$appName +slogan=$appSlogan +repoType=$repoType +svnRepo=$svnRepo +gitRepo=$gitRepo +useFlattr=$useFlattr +flattrThingURL=$flattrThingURL +usePaypal=$usePaypal +paypalAddress=$paypalAddress +useBitcoin=$useBitcoin +btcAddress=$btcAddress +" >"$metafile" + +echo -n "Location: ${proto}://${HTTP_HOST}/?p=Admin\n\n" -- 2.39.2