#!/bin/bash

function timestamp {
    date "+%Y%m%d %H:%M %z"
}

function melpa {
    timestamp

    timestamp > $HOME/www/status.txt
    echo "building..." >> $HOME/www/status.txt

    MELPADIR=${MELPADIR:-$HOME/melpa}
    MELPABRANCH=${MELPABRANCH:-master}
    WEBROOT=${WEBROOT:-$HOME/www}

    PATH=$HOME/.cabal/bin:$HOME/usr/bin:$HOME/bin:$PATH

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

    ENVLOG=$HOME/log/melpaenv.log
    env > ${ENVLOG}

    STDOUT=`mktemp`
    STDERR=`mktemp`

    ## git pull
    cd ${MELPADIR}
    git pull origin ${MELPABRANCH} &>> ${STDOUT}
    echo >> ${STDOUT}

    MELPASTDOUT=`mktemp`

    ## run the script
    cd ${MELPADIR}
    make 1>> ${MELPASTDOUT} 2>> ${STDERR}

    ## sync to the web directory
    rsync -avz --delete ${MELPADIR}/packages ${MELPADIR}/html/* ${WEBROOT}/ 1>> ${STDOUT} 2>> ${STDERR}

    chmod -R go+r ${WEBROOT}/packages/*
    chmod -R go-x ${WEBROOT}/packages/*

    /usr/sbin/logrotate -s $HOME/log/logrotate.state $HOME/log/melpa.logrotate 1>> ${STDOUT} 2>> ${STDERR}

    EMAIL=`mktemp`
    echo "Subject: Melpa status `timestamp`" > ${EMAIL}
    cat ${MELPASTDOUT} ${STDOUT} ${ENVLOG} ${STDERR} >> ${EMAIL}

    /usr/sbin/sendmail dcurtis@milkbox.net < ${EMAIL}
    cat ${ENVLOG} ${STDERR} ${STDOUT} | tee $WEBROOT/lastrun.txt

    timestamp > $HOME/www/status.txt
    echo "completed" >> $HOME/www/status.txt
}

if [[ `cat $HOME/www/updatemelpa.txt` == 1 ]] ; then
        echo "Running MELPA"
        echo "2" > $HOME/www/updatemelpa.txt
        melpa
        echo "0" > $HOME/www/updatemelpa.txt
fi