107 lines
2.1 KiB
Bash
Executable File
107 lines
2.1 KiB
Bash
Executable File
#!/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 <device> [<files to upoad>]"
|
|
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
|