#!/bin/bash -x
if [ ! $(expr $(date -u +%H)) == 3 ]
then
exit 0
fi
TOP_DIR=~/hd2
SF_URL='dongxuli@frs.sf.net:/home/frs/project/librecad/OSX/NightlyBuilds/'
LOG_DIR=$TOP_DIR/log-nightly
[[ -d $LOG_DIR ]] || mkdir -p $LOG_DIR
LOG_ERR=$LOG_DIR/err.log
LOG_MSG=$LOG_DIR/msg.log
LC_DIR=$TOP_DIR/LibreCAD
if [ ! -d $LC_DIR ]
then
echo "Error: LibreCAD source repository $LC_DIR does not exist" >> $LOG_MSG
exit 1
fi
LC_HEAD=$LOG_DIR/lc_HEAD_number.tmp
LC_GIT_HEAD=$LC_DIR/.git/refs/heads/master
LC_DMG=$LC_DIR/LibreCAD.dmg
LC_SF_NIGHTLY=$TOP_DIR/sf-OSX-Nightly
[[ -d $LC_SF_NIGHTLY ]] || mkdir -p $LC_SF_NIGHTLY
cd $LC_DIR
git fetch origin
git reset --hard origin/master
echo "$(date): repository updated" >> $LOG_MSG
if [ -f $LC_HEAD ]
then
if cmp $LC_HEAD $LC_GIT_HEAD
then
echo "$(date): No git update, exiting" >> $LOG_ERR
exit 0
fi
fi
cp -v $LC_GIT_HEAD $LC_HEAD
LC_HEAD_NUM=$(cat $LC_HEAD)
DATE_STR="$(date -u '+%F')"
COMMIT_STR=${LC_HEAD_NUM:0:8}
LC_DMG_SF=LibreCAD-${DATE_STR}-${COMMIT_STR}.dmg
echo $LC_DMG_SF
rm -f $LC_DMG
./scripts/build-osx.sh -p="" -q="" 2>&1 >> $LOG_ERR
if ! [ -f $LC_DMG ]
then
echo "$(date): building failed, exiting" >> $LOG_ERR
exit 1
fi
mkdir -p $LC_SF_NIGHTLY
pushd $LC_SF_NIGHTLY
for f in $(ls -rv|sed -e '1,9 d')
do
rm -f $f
done
popd
cp -v $LC_DMG $LC_SF_NIGHTLY/$LC_DMG_SF
rsync -e ssh --delete -Pac $LC_SF_NIGHTLY/ "$SF_URL"
if [ $? -ne 0 ]
then
echo "$(date): failed to upload $LC_DMG_SF" >> $LOG_ERR
exit -1
fi
cd ..
README_FILE=$TOP_DIR/README.md
cp $TOP_DIR/README.md.template $README_FILE
cat $TOP_DIR/README.md.template | \
sed -e "s:DATE_PLACE_HOLDER:${DATE_STR}:g" \
-e "s:COMMIT_PLACE_HOLDER:${COMMIT_STR}:g" \
> $README_FILE
pushd $LC_SF_NIGHTLY
for dfile in *.dmg
do
echo -e "- - -\n[$dfile](http://sourceforge.net/projects/librecad/files/OSX/Nightly/$dfile/download/)" >> $README_FILE
echo -e "\nMD5: $(md5 -r $dfile|awk '{print $1}')">> $README_FILE
echo -e "\nSHA1: $(shasum $dfile|awk '{print $1}')">> $README_FILE
echo -e "\nSHA256: $(shasum -a 256 $dfile|awk '{print $1}')">> $README_FILE
done
popd
rsync -e ssh -Pac $README_FILE "$SF_URL"
echo "$(date): $LC_DMG_SF uploaded" >> $LOG_MSG