!/bin/bash
clear echo "Create a Public Wiki TRAC project with Blank SVN"
-------------------------------------------------------------------------------------
project_name=$1 echo "Project name = $project_name"
project_title=$2 echo "Project Title = $project_title"
contact_email=$3 echo "Primary Contact Email = $contact_email"
arg_count=$# echo "Arg count = $arg_count"
if [ $arg_count -ne 3 ]; then echo "Incorrect number of parameters used." echo "Usage ./CreateProject.sh projectName \"Project Title\" contact@.com" exit fi
-------------------------------------------------------------------------------------
echo "Remove any old directories if they exist" rm -rf /trac-root/productwiki/trac/$project_name
-------------------------------------------------------------------------------------
echo "Create the TRAC project" trac-admin /trac-root/productwiki/trac/$project_name initenv "$project_title" sqlite:db/trac.db svn /trac-root/productwiki/svn/blank
echo "Update the database." trac-admin /trac-root/productwiki/trac/$project_name upgrade
echo "Set directory/file permissions." chown -R www-data /trac-root/productwiki/svn/blank chown -R www-data /trac-root/productwiki/trac/$project_name
chgrp -R www-data /trac-root/productwiki/svn/blank chgrp -R www-data /trac-root/productwiki/trac/$project_name
chmod -R 775 /trac-root/productwiki/svn/blank chmod -R 775 /trac-root/productwiki/trac/$project_name
-------------------------------------------------------------------------------------
echo "Copy company logo file to project" cp /trac-root/tracScripts/company-logo.png /trac-root/productwiki/trac/$project_name/htdocs/company-logo.png
echo "Deleting existing trac.ini file." rm -rf /trac-root/productwiki/trac/$project_name/conf/trac.ini
echo "Copy the company Electronics trac.ini template file into the project." cp /trac-root/tracScripts/mtrac.ini /trac-root/productwiki/trac/$project_name/conf/trac.ini
-------------------------------------------------------------------------------------
echo "Correct the trac.ini projecttitle"
sed 's/projecttitle/'"$project_title"'/g' /trac-root/productwiki/trac/$project_name/conf/trac.ini >> /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini
rm -rf /trac-root/productwiki/trac/$project_name/conf/trac.ini
mv /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini /trac-root/productwiki/trac/$project_name/conf/trac.ini
rm -rf /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini
-------------------------------------------------------------------------------------
echo "Correct the trac.ini projectname"
sed 's/projectname/'$project_name'/g' /trac-root/productwiki/trac/$project_name/conf/trac.ini >> /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini
rm -rf /trac-root/productwiki/trac/$project_name/conf/trac.ini
mv /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini /trac-root/productwiki/trac/$project_name/conf/trac.ini
rm -rf /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini
-------------------------------------------------------------------------------------
echo "Correct the trac.ini contact_email"
sed 's/contact_email/'$contact_email'/g' /trac-root/productwiki/trac/$project_name/conf/trac.ini >> /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini
rm -rf /trac-root/productwiki/trac/$project_name/conf/trac.ini
mv /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini /trac-root/productwiki/trac/$project_name/conf/trac.ini
rm -rf /trac-root/productwiki/trac/$project_name/conf/trac-temp.ini
-------------------------------------------------------------------------------------
echo "remove all anonymous access" trac-admin /trac-root/productwiki/trac/$project_name permission remove anonymous '*'
echo "remove authenticated permissions" trac-admin /trac-root/productwiki/trac/$project_name permission remove authenticated '*'
echo "Setup Administrator account permissions" trac-admin /trac-root/productwiki/trac/$project_name permission add administrator TRAC_ADMIN BROWSER_VIEW LOG_VIEW FILE_VIEW CHANGESET_VIEW trac-admin /trac-root/productwiki/trac/$project_name permission add administrator TICKET_ADMIN trac-admin /trac-root/productwiki/trac/$project_name permission add administrator MILESTONE_ADMIN ROADMAP_VIEW trac-admin /trac-root/productwiki/trac/$project_name permission add administrator REPORT_ADMIN trac-admin /trac-root/productwiki/trac/$project_name permission add administrator WIKI_ADMIN WIKI_VIEW WIKI_CREATE WIKI_MODIFY WIKI_DELETE trac-admin /trac-root/productwiki/trac/$project_name permission add administrator TIMELINE_VIEW SEARCH_VIEW CONFIG_VIEW
echo "Setup Developer account permissions" trac-admin /trac-root/productwiki/trac/$project_name permission add developer BROWSER_VIEW LOG_VIEW FILE_VIEW CHANGESET_VIEW trac-admin /trac-root/productwiki/trac/$project_name permission add developer TICKET_VIEW TICKET_CREATE TICKET_MODIFY trac-admin /trac-root/productwiki/trac/$project_name permission add developer WIKI_VIEW WIKI_CREATE WIKI_MODIFY WIKI_DELETE trac-admin /trac-root/productwiki/trac/$project_name permission add developer REPORT_VIEW
echo "Setup Customer account permissions" trac-admin /trac-root/productwiki/trac/$project_name permission add customer WIKI_VIEW
echo "Setup sales Team permissions" trac-admin /trac-root/productwiki/trac/$project_name permission add sales TICKET_CREATE TICKET_VIEW TICKET_APPEND trac-admin /trac-root/productwiki/trac/$project_name permission add sales REPORT_VIEW trac-admin /trac-root/productwiki/trac/$project_name permission add sales WIKI_VIEW
trac-admin /trac-root/productwiki/trac/$project_name permission add support@company.co.uk administrator
trac-admin /trac-root/productwiki/trac/$project_name permission list
-------------------------------------------------------------------------------------
echo "End of script."