summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/closeproject70
1 files changed, 70 insertions, 0 deletions
diff --git a/bin/closeproject b/bin/closeproject
new file mode 100755
index 0000000..19b4433
--- /dev/null
+++ b/bin/closeproject
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+dbquery() {
+ mysql -s -s -e "$*" trac
+}
+
+# main function
+main() {
+ echo
+
+ # project_name may not be an empty string and must be >= 3 characters
+ while [[ ${#project_name} -lt 3 ]]
+ do
+ eask_str "a project name (min 3 chars)"
+ project_name=${REPLY}
+ done
+
+ if [[ -z $(dbquery "SELECT id FROM project WHERE project_name = '${project_name}'") ]]
+ then
+ eerror "Project ${project_name} does not exists."
+ fi
+
+ svn_home=${SVN_ROOT}/${project_name}
+ trac_home=${TRAC_ROOT}/${project_name}
+ trac_db=trac_${project_name}
+
+ eheading "setting trac permissions"
+ for perm in BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW \
+ REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_VIEW \
+ TIMELINE_VIEW WIKI_VIEW
+ do
+ eexec trac-admin ${trac_home} permission remove anonymous ${perm}
+ done
+
+ for perm in TICKET_CREATE TICKET_MODIFY WIKI_CREATE WIKI_MODIFY
+ do
+ eexec trac-admin ${trac_home} permission remove authenticated ${perm}
+ done
+
+ # apply changes to /etc/apache2/vhosts.d/dev_vhost.include
+ eexec sed -i -e "s/Use SVNProject ${project_name}/Use SVNProjectClosed ${project_name}/" /etc/apache2/vhosts.d/dev_vhost.include
+ eexec /etc/init.d/apache2 reload
+
+ # set project to private in database
+ dbquery "UPDATE project SET private = 1 WHERE project_name = '${project_name}'"
+
+ eheading "committing changes to our git-repository in /etc"
+ pushd /etc > /dev/null
+ eexec git add ${APACHE_PROJECT_CONF/\/etc\/}
+ eexec git commit -m "opened project ${project_name}"
+ popd > /dev/null
+}
+
+# go to script dir
+pushd $(dirname $0) > /dev/null
+
+# get global functions
+source "./functions.sh"
+
+# load configuration
+source "./config.sh"
+
+# exit on errors
+set -e
+
+# start main program
+main "$@"
+
+# leave script dir
+popd > /dev/null