#!/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

