#!/usr/bin/env bash
# Install MercurialApp in a closed environement
! [ -d buildout ] && mkdir buildout
cd buildout
! [ -f buildout.cfg ] && cat << EOF > buildout.cfg
[buildout]
newest = false
parts = eggs
bin-directory=$HOME/bin
# remove those line to get the current pypi release
extensions = gp.vcsdevelop
vcs-extend-develop = hg+https://hg.gawel.org/MercurialApp/@tip#egg=MercurialApp
[eggs]
recipe = zc.recipe.egg
eggs =
mercurial
MercurialApp
initialization =
os.environ['PASTE_CONFIG'] = '$HOME/hgapp.ini'
EOF
# initialise buildout environement
! [ -d $HOME/.buildout ] && mkdir $HOME/.buildout
! [ -f $HOME/.buildout/default.cfg && cat <<EOF > $HOME/.buildout/default.cfg
[buildout]
eggs-directory = $HOME/eggs
EOF
wget "http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py"
python bootstrap.py -d
! [ -x $HOME/bin/buildout ] && $HOME/bin/buildout
cat << EOF > bin/init.d
#!/usr/bin/env sh
cd $HOME
! [ -d $HOME/var/log ] && mkdir -p $HOME/var/log
PID=$HOME/var/paster.pid
LOG=$HOME/var/log/paster.log
start() {
echo "Starting."
$HOME/bin/hgapp serve --daemon --pid-file=\$PID --log-file=\$LOG $HOME/hgapp.ini
}
stop() {
echo "Stoping."
$HOME/bin/hgapp serve --stop-daemon --pid-file=\$PID $HOME/hgapp.ini
}
restart() {
stop
start
}
case "\$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "usage \$0 [start|stop|restart]"
esac
EOF
chmod +x bin/init.d
[ -f $HOME/.bashrc ] && echo "export PATH=$HOME/bin:$PATH" >> $HOME/.bashrc
! [ -d $HOME/var/auth ] && mkdir -p $HOME/var/auth
! [ -f $HOME/var/auth/passwd ] && cat << EOF > $HOME/var/auth/passwd
admin:QLbjU7ZrZkxkU
EOF
! [ -f $HOME/var/auth/groups.ini ] && cat << EOF > $HOME/var/auth/groups.ini
[group1]
admin
EOF
echo "Installation success"
$HOME/bin/init.d