Skip to content

Instantly share code, notes, and snippets.

@wilful
Created February 20, 2012 07:48
Show Gist options
  • Save wilful/1868303 to your computer and use it in GitHub Desktop.
Save wilful/1868303 to your computer and use it in GitHub Desktop.
#!/bin/sh
DIR="$( cd "$( dirname "$0" )" && pwd )"
GIT=git
ROOT_DIR="avto.git"
UPLOAD_DIR="avto.upload"
# ________________________
#_/ Select enviroment mode. \________________
#
if [[ "$1" = "production" ]]; then
MODE="$1"
fi
if [[ "$1" = "api" ]]; then
MODE="$1"
fi
if [[ "$1" = "look" ]]; then
MODE="$1"
fi
if [[ "$MODE" = "" ]]; then
echo "!"
echo "When you select production, api, look-master then used DB AUTOITOGI"
echo "When you select look-look, look-dev then used DB AUTOITOGI_DEV"
echo "!"
select MODE in "production" "api" "look" "look-dev" "look-master"
do
echo "Run script for $MODE enviroment."
break
done
fi
#____________________________________________
# ___________________________
#_/ Set enviroment variables. \__________
#
case "$MODE" in
"production")
BRANCH="master"
SVN_SYMLINK="/export/www/autoitogi.ru"
REP_FIRST="a1"
REP_SECOND="a2"
APPLICATION_ENV="env.php"
UPLOAD_DIR="avto.upload"
;;
"api")
BRANCH="json-service"
SVN_SYMLINK="/export/www/api.autoitogi.ru"
REP_FIRST="c1"
REP_SECOND="c2"
APPLICATION_ENV="env.php"
UPLOAD_DIR="avto.upload"
;;
"look")
BRANCH="look"
SVN_SYMLINK="/export/www/look.autoitogi.ru"
REP_FIRST="b1"
REP_SECOND="b2"
APPLICATION_ENV="look.env.php"
UPLOAD_DIR="look.avto.upload"
;;
"look-dev")
BRANCH="dev"
SVN_SYMLINK="/export/www/look.autoitogi.ru"
REP_FIRST="b1"
REP_SECOND="b2"
APPLICATION_ENV="look.env.php"
UPLOAD_DIR="look.avto.upload"
;;
"look-master")
BRANCH="master"
SVN_SYMLINK="/export/www/look.autoitogi.ru"
REP_FIRST="b1"
REP_SECOND="b2"
APPLICATION_ENV="env.php"
UPLOAD_DIR="avto.upload"
;;
*)
exit 0;
;;
esac
#________________________________________
if [ ! -d $ROOT_DIR ]; then
mkdir $ROOT_DIR
fi
if [ ! -f "$ROOT_DIR/flag.$REP_FIRST" ]; then
REP_TARGET=$REP_FIRST
REP_ACTIVE=$REP_SECOND
else
REP_TARGET=$REP_SECOND
REP_ACTIVE=$REP_FIRST
fi
(cd $ROOT_DIR/$REP_TARGET && cd $DIR) || ($GIT clone ssh://git@redmine.7days.ru/avto.git $ROOT_DIR/$REP_TARGET)
cd $ROOT_DIR/$REP_TARGET && $GIT reset --hard && $GIT checkout $BRANCH && $GIT reset --hard && $GIT pull origin $BRANCH && cd $DIR
rm -f $ROOT_DIR/$REP_TARGET/www/static
ln -s -f ../../../$UPLOAD_DIR/static $ROOT_DIR/$REP_TARGET/www/static
if [ -d $ROOT_DIR/$REP_TARGET/application/cache ]; then ( rm -R -f $ROOT_DIR/$REP_TARGET/application/cache ) fi
mkdir $ROOT_DIR/$REP_TARGET/application/cache && chmod 0777 $ROOT_DIR/$REP_TARGET/application/cache
if [ -d $ROOT_DIR/$REP_TARGET/application/data ]; then ( rm -R -f $ROOT_DIR/$REP_TARGET/application/data ) fi
mkdir $ROOT_DIR/$REP_TARGET/application/data && chmod 0777 $ROOT_DIR/$REP_TARGET/application/data
if [ -d $ROOT_DIR/$REP_TARGET/www/captcha ]; then ( rm -R -f $ROOT_DIR/$REP_TARGET/www/captcha ) fi
mkdir $ROOT_DIR/$REP_TARGET/www/captcha && chmod 0777 $ROOT_DIR/$REP_TARGET/www/captcha
rm "$ROOT_DIR/flag.$REP_ACTIVE"
echo > "$ROOT_DIR/flag.$REP_TARGET"
cp $UPLOAD_DIR/configs/$APPLICATION_ENV $ROOT_DIR/$REP_TARGET/application/configs/env.php
cp $UPLOAD_DIR/configs/pluginLoaderCache.php $ROOT_DIR/$REP_TARGET/application/data/pluginLoaderCache.php
echo Deny for All> $ROOT_DIR/$REP_TARGET/.htaccess
chown -R apache:webserver $ROOT_DIR/$REP_TARGET
find $ROOT_DIR/$REP_TARGET -type d -exec chmod -R 775 {} \;
find $ROOT_DIR/$REP_TARGET -type f -exec chmod -R 664 {} \;
ln -s -f -T $ROOT_DIR/$REP_TARGET $SVN_SYMLINK
/usr/local/prog/httpd-2.2.17/bin/apachectl graceful
/etc/init.d/nginx reload
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment