#!/bin/bash

LOG_FILE=pages/log.txt
CREDENTIALS="--username $1 --password $2"
PAGE=$3
REV=$4
NEW_PAGE=$5
MESSAGE=$6

#echo "Cred: $CREDENTIALS" >> $LOG_FILE
#echo "Page: $PAGE"        >> $LOG_FILE
#echo "Rev:  $REV"         >> $LOG_FILE
#echo "New:  $NEW_PAGE"    >> $LOG_FILE
#echo "Msg:  $MESSAGE"     >> $LOG_FILE

function do_cmd
{
  # echo >> $LOG_FILE
  # echo cmd\$ "$@" >> $LOG_FILE
  "$@" >> $LOG_FILE 2>&1
}

if [ ! -f "$PAGE" ]
then
  echo "Adding '$PAGE' ($MESSAGE)" >> $LOG_FILE
  do_cmd cp "$NEW_PAGE" "$PAGE"
  svn $CREDENTIALS add "$PAGE"
  # Update the index page of all the pages
  echo 'This index of SubflexionPages is automatically regenerated when new pages are added.<br>' > pages/Pages.md
  for F in pages/*.md ; do G=${F##*/} ; echo [${G%.*}]'<br>' ; done >> pages/Pages.md
else
  echo "Updating '$PAGE' ($MESSAGE)" >> $LOG_FILE
  do_cmd svn revert "$PAGE"
  do_cmd svn $CREDENTIALS up "$PAGE" -r $REV
  do_cmd cp "$NEW_PAGE" "$PAGE"
  svn $CREDENTIALS up "$PAGE"
fi

svn $CREDENTIALS commit -m "$MESSAGE" "$PAGE"

