This is the whole script.
It does a bunch of stuff:
- generates the git tags for various sub projects, and exports the defines
- builds all the web based material using gulp which also copies it to the data folder
- goes through each parameter passed into the script to clean, build and copy the results to a server on my network that acts as the update gateway.
#!/bin/bash
CURRENT=$(pwd)
set -e
echo "PWD = $CURRENT"
MY_PATH=`dirname "$0"`
FULL_PATH=$PWD
BUILD_NAME_VARIABLE="MyMelvanimate"
pushd .
ver=`git describe --tags --always`
ver_define=`echo $ver | tr "[:lower:].-" "[:upper:]_"`
MYMELGIT="\"0x`git rev-parse --short=8 HEAD 2>/dev/null`\""
cd $FULL_PATH/lib/ESPmanager/src
MANGIT="\"0x`git rev-parse --short=8 HEAD 2>/dev/null`\""
cd $FULL_PATH/lib/Melvanimate/src
MELGIT="\"0x`git rev-parse --short=8 HEAD 2>/dev/null`\""
#pushd $MY_PATH
popd
echo $MYMELGIT $MANGIT $MELGIT
export PLATFORMIO_BUILD_FLAGS="-DMY_MELVANIMATE_GIT_TAG=$MYMELGIT -DESPMANAGER_GIT_TAG=$MANGIT -DMELVANIMATE_GIT_TAG=$MELGIT"
for var in "$@"
do
rm -rf ./tmp.package
mkdir -pv ./tmp.package
echo "Building $var"
platformio run -e $var -t clean
platformio run -e $var -t idedata
platformio run -e $var
cp -r -v $CURRENT/$BUILD_NAME_VARIABLE/data $CURRENT/tmp.package/data
cp $CURRENT/.pioenvs/$var/firmware.bin $CURRENT/tmp.package/data
python $CURRENT/buildmanifest.py $CURRENT/tmp.package/data ./tmp.package/manifest.json
cp $CURRENT/.pioenvs/$var/firmware.elf $CURRENT/tmp.package/
ssh -p 22 -i ~/.ssh/travis travis@192.168.1.42 "rm -rf ~/projects/sticilface/local/$BUILD_NAME_VARIABLE/$var/"
ssh -p 22 -i ~/.ssh/travis travis@192.168.1.42 "mkdir -p ~/projects/sticilface/local/$BUILD_NAME_VARIABLE/$var/"
scp -P 22 -i ~/.ssh/travis -rp $CURRENT/tmp.package/. "travis@192.168.1.42:~/projects/sticilface/local/$BUILD_NAME_VARIABLE/$var/"
done
no experience with windows I’m afraid