Skip to content

Instantly share code, notes, and snippets.

@magussiro
Forked from jaceju/create_zf_project.sh
Created July 17, 2020 15:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save magussiro/7f6cea298a9adbe6c76cc6c5ee647aeb to your computer and use it in GitHub Desktop.
Save magussiro/7f6cea298a9adbe6c76cc6c5ee647aeb to your computer and use it in GitHub Desktop.
利用專案樣版在 Subversion 中建立一個 Zend Framework 專案
#!/bin/bash
# Program:
# 利用專案樣版在 Subversion 中建立一個 Zend Framework 專案
# History:
# 2011/11/03 Jace Ju First release
# Usage:
# Create template of project at first time:
# > cd /path/to/project_template
# > mkdir branches
# > mkdir tags
# > zf create project trunk
#
# Build repository:
# > ./create_zf_project.sh project_name
#
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
## Set variables
repo_path="/path/to/repos"
project_name="$1"
temp_path="__template__.$RANDOM.$RANDOM.$RANDOM.$$"
svn_local_url="file://$repo_path"
svn_http_url="http://domain/svn"
template_path="/path/to/project_template"
user="_www"
group="_www"
zf_lib="http://framework.zend.com/svn/framework/standard/tags/release-1.11.10/library/Zend"
## Get name of project
until [ "$project_name" != "" ]
do
read -p "Please input Project Name: " project_name
done
## Exit if project exists
if test -r "$repo_path/$project_name" ; then
echo "Project $project_name exists."
exit 1
fi
## Create repository
echo "Creating repository..."
cd $repo_path
svnadmin create $project_name > /dev/null
## Create structure of project
echo "Creating structure of project..."
cd $TMPDIR
mkdir $temp_path > /dev/null
cd $temp_path
cp -R "$template_path/" $project_name > /dev/null
## Import project
echo "Importing project..."
svn import $project_name "$svn_local_url/$project_name" -m "Initialize structure of project." > /dev/null
# Checkout project
rm -rf $project_name
svn checkout "$svn_local_url/$project_name/trunk" $project_name > /dev/null
# Set externals
svn propset svn:externals "$zf_lib Zend" "$project_name/library" > /dev/null
svn commit $project_name -m "Set properties" > /dev/null
# Changing permission
echo "Changing permissions of repository..."
sudo chown -R "$user" "$repo_path/$project_name" > /dev/null
sudo chgrp -R "$group" "$repo_path/$project_name" > /dev/null
## Clear off temp file
echo "Clearing off temp file..."
cd $TMPDIR
rm -rf $temp_path > /dev/null
echo "done."
echo "The final svn url is '$svn_http_url/$project_name/trunk'"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment