#!/bin/sh
MYPATH=$PWD
# old/for Arduino builds
# FULLIMG=${MYPATH}/out.img
# UPDIMG=${MYPATH}/build/RX_FSK.ino.bin
# new/for pio build
FULLIMG=${MYPATH}/.pio/build/ttgo-lora32/firmware-image.bin
UPDIMG=${MYPATH}/.pio/build/ttgo-lora32/firmware.bin
setup_git() {
git config --global user.email "dl9rdz@darc.de"
git config --global user.name "dl9rdz (via automated build)"
GITHUB_API_KEY=`cat ~/.github.api.key`
}
generate_website_index() {
echo "
" > download.html
echo "rdz_ttgo_sonde
' >> download.html
echo "Main repository (future...)
" >> download.html
for i in `ls main|sort -r`; do
TS=`git log main/$i | grep "Date:" | head -1 | awk '{$1="";$2="";$7="";print substr($0,3,length($0)-3)}'`
if [ -z "$TS" ]; then TS=`date`; fi
echo "- $i ($TS)
\n" >> download.html;
done
echo "
"
echo "Development repository (dev2)
" >> download.html
for i in `ls dev2|sort -r|grep "\.bin"`; do
TS=`git log dev2/$i | grep "Date:" | head -1 | awk '{$1="";$2="";$7="";print substr($0,3,length($0)-3)}'`
if [ -z "$TS" ]; then TS=`date`; fi
VERS=`basename $i -full.bin`
CL=`cat dev2/${VERS}-changelog.txt 2>/dev/null`
echo "VERS $VERS: CL $CL"
echo "- $i ($TS)" >> download.html
if [ -n "${CL}" ]; then echo "
${CL}" >> download.html; fi
echo " \n" >> download.html
done
echo "
"
echo "Master repository (old IDF environment)
" >> download.html
for i in `ls master|sort -r`; do
TS=`git log master/$i | grep "Date:" | head -1 | awk '{$1="";$2="";$7="";print substr($0,3,length($0)-3)}'`
if [ -z "$TS" ]; then TS=`date`; fi
echo "- $i ($TS)
\n" >> download.html;
done
echo "
Development repository (old IDF environment)
" >> download.html
for i in `ls devel|sort -r|grep "\.bin"`; do
TS=`git log devel/$i | grep "Date:" | head -1 | awk '{$1="";$2="";$7="";print substr($0,3,length($0)-3)}'`
if [ -z "$TS" ]; then TS=`date`; fi
VERS=`basename $i -full.bin`
CL=`cat devel/${VERS}-changelog.txt 2>/dev/null`
echo "VERS $VERS: CL $CL"
echo "- $i ($TS)" >> download.html
if [ -n "${CL}" ]; then echo "
${CL}" >> download.html; fi
echo " \n" >> download.html
done
echo "
Last latter/number of version number indicate SPIFFS file system version. If the first (upper-case)
letter has changed, then this version is incompabible with prevision versions and you have to flash
the full image. If the second part (number) has changed, then this version has some changes
(e.g. internal web page layout, LCD/TFT display layout) in the file system which you will not get with
a code-only (OTA or flashing update.bin) update, but it should not break anything.
" >> download.html
git add download.html
git commit --amend --message "Build @ `date`"
}
commit_website_files() {
BRANCH=`git branch --show-current`
VERSION=`cat RX_FSK/version.h | grep version_id | egrep -o '".*"' | sed 's/"//g' | sed 's/ /_/g'`
FSMAJOR=`cat RX_FSK/version.h | grep SPIFFS_MAJOR | perl -e '$_=<>;print /=(.*);/?chr($1+64):""'`
FSMINOR=`cat RX_FSK/version.h | grep SPIFFS_MINOR | perl -e '$_=<>;print /=(.*);/?$1:""'`
VERSION=$VERSION-$FSMAJOR$FSMINOR
COMMIT_MESSAGE=`git log -1 --pretty=%B`
MYPATH=$PWD
echo "On branch $BRANCH"
echo "Version $VERSION"
cd /tmp
git clone https://github.com/dl9rdz/rdz_ttgo_sonde.git -b gh-pages
cd rdz_ttgo_sonde
mkdir -p master
mkdir -p devel
mkdir -p main
mkdir -p dev
cp ${FULLIMG} ${BRANCH}/${VERSION}-full.bin
git add ${BRANCH}/${VERSION}-full.bin
cp ${UPDIMG} ${BRANCH}/update.ino.bin
git add ${BRANCH}/update.ino.bin
echo "${COMMIT_MESSAGE}" >> ${BRANCH}/${VERSION}-changelog.txt
git add ${BRANCH}/${VERSION}-changelog.txt
echo "
${VERSION}
" > ${BRANCH}/update-info.html
git add ${BRANCH}/update-info.html
${MYPATH}/scripts/makefsupdate.py ${MYPATH}/RX_FSK/data/ > ${BRANCH}/update.fs.bin
git add ${BRANCH}/update.fs.bin
git commit --message "Build @ `date`"
}
upload_files() {
git remote add origin-pages https://${GITHUB_API_KEY}@github.com/dl9rdz/rdz_ttgo_sonde.git > /dev/null 2>&1
git push --quiet --set-upstream origin-pages gh-pages
}
setup_git
commit_website_files
generate_website_index
upload_files