#!/bin/bash TOOLDIR=tools/ LUATOOL=${TOOLDIR}luatool.py #DIET=bin/luasrcdiet --maximum DIET=bin/luasrcdiet DEVICE=$1 BAUD=115200 LUASCRIPT_STOP=${TOOLDIR}/stopController.lua # check environment if [ ! -f $LUATOOL ]; then echo "$LUATOOL not found" echo "is the command prompt at the same level as the tools folder ?" exit 1 fi # check the serial connection if [ ! -c $DEVICE ]; then echo "Serial target: $DEVICE does not exist" exit 1 fi if [ $# -eq 0 ]; then echo "" echo "e.g. usage $0 []" exit 1 fi if [ $# -eq 1 ]; then FILES="displayword.lua main.lua timecore.lua webpage.html webserver.lua telnet.lua wordclock.lua init.lua" else FILES=$2 fi # Convert files, if necessary if [ "$FILES" != "config.lua" ]; then echo "Generate DIET version of the files" OUTFILES="" ROOTDIR=$PWD cd $TOOLDIR for f in $FILES; do if [[ "$f" == *.lua ]] && [[ "$f" != init.lua ]]; then echo "Compress $f ..." out=$(echo "$f" | sed 's/.lua/_diet.lua/g') $DIET ../$f -o ../diet/$out if [ $? -ne 0 ]; then echo "Failed to generate file" exit $? fi OUTFILES="$OUTFILES diet/$out" else OUTFILES="$OUTFILES $f" fi done FILES=$OUTFILES cd $ROOTDIR fi echo "Reboot ESP and stop init timer" if [ ! -f $LUASCRIPT_STOP ]; then echo "Cannot find $LUASCRIPT_STOP" exit 1 fi python3 $LUATOOL -p $DEVICE -f $LUASCRIPT_STOP -b $BAUD --volatile --delay 2 if [ $? -ne 0 ]; then echo "Could not reboot" exit 1 fi if [ $# -eq 1 ]; then # Format filesystem first echo "Format the complete ESP" python3 $LUATOOL -p $DEVICE -w -b $BAUD if [ $? -ne 0 ]; then echo "STOOOOP" exit 1 fi fi echo "Start Flasing ..." for f in $FILES; do if [ ! -f $f ]; then echo "Cannot find $f" echo "place the terminal into the folder where the lua files are present" exit 1 fi espFile=$(echo "$f" | sed 's;diet/;;g') echo "------------- $espFile ------------" python3 $LUATOOL -p $DEVICE -f $f -b $BAUD -t $espFile if [ $? -ne 0 ]; then echo "STOOOOP" exit 1 fi done if [ $# -eq 1 ]; then echo "Reboot the ESP" echo "node.restart()" >> $DEVICE fi exit 0