From 96bb6aeb178182c95558c5157b6ddfaecfceb785 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Tue, 7 Nov 2023 11:04:34 -0700 Subject: shell script cleanup (fix lint warnings, remove unused scripts) --- bin/build-all.sh | 35 ++++++++++++++++++----------------- bin/build.sh | 39 ++++++++++++++++++--------------------- bin/detect-mcu.sh | 4 ++-- bin/flash-tiny13-fuses.bat | 1 - bin/flash-tiny13-fuses.sh | 8 -------- bin/flash-tiny13.bat | 1 - bin/flash-tiny13.sh | 3 --- bin/flash-tiny1616.sh | 10 +++++----- bin/flash-tiny1634-fuses.sh | 2 +- bin/flash-tiny1634.sh | 6 +++--- bin/flash-tiny25-fuses.sh | 8 -------- bin/flash-tiny25.sh | 3 --- bin/flash-tiny85-fuses.sh | 2 +- bin/flash-tiny85.sh | 6 +++--- bin/flash.sh | 10 +++++----- 15 files changed, 56 insertions(+), 82 deletions(-) delete mode 100755 bin/flash-tiny13-fuses.bat delete mode 100755 bin/flash-tiny13-fuses.sh delete mode 100755 bin/flash-tiny13.bat delete mode 100755 bin/flash-tiny13.sh delete mode 100755 bin/flash-tiny25-fuses.sh delete mode 100755 bin/flash-tiny25.sh (limited to 'bin') diff --git a/bin/build-all.sh b/bin/build-all.sh index 0dec247..130923f 100755 --- a/bin/build-all.sh +++ b/bin/build-all.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash # Anduril / FSM build wrapper script # Copyright (C) 2017-2023 Selene ToyKeeper # SPDX-License-Identifier: GPL-3.0-or-later @@ -6,9 +6,12 @@ # Usage: build-all.sh [pattern] # If pattern given, only build targets which match. -if [ ! -z "$1" ]; then +# enable "**" for recursive glob (requires bash) +shopt -s globstar + +if [ "$#" -gt 0 ]; then # multiple search terms with "AND" - SEARCH=$@ + SEARCH=( "$@" ) # memes [ "$1" = "me" ] && shift && shift && echo "Make your own $*." && exit 1 fi @@ -27,18 +30,19 @@ FAIL=0 PASSED='' FAILED='' -# build targets are hw/*/**/$UI.h -for TARGET in $( find hw/*/*/ -name "$UI".h ) ; do +# build targets are hw/$vendor/$model/**/$ui.h +for TARGET in hw/*/*/**/"$UI".h ; do # friendly name for this build NAME=$(echo "$TARGET" | perl -ne 's|/|-|g; /hw-(.*)-'"$UI"'.h/ && print "$1\n";') # limit builds to searched patterns, if given SKIP=0 - if [ ! -z "$SEARCH" ]; then - for text in $SEARCH ; do - echo "$NAME $TARGET" | grep -i -- "$text" > /dev/null - if [ 0 != $? ]; then SKIP=1 ; fi + if [ ${#SEARCH[@]} -gt 0 ]; then + for text in "${SEARCH[@]}" ; do + if ! echo "$NAME $TARGET" | grep -i -- "$text" > /dev/null ; then + SKIP=1 + fi done fi if [ 1 = $SKIP ]; then continue ; fi @@ -46,18 +50,15 @@ for TARGET in $( find hw/*/*/ -name "$UI".h ) ; do # announce what we're going to build echo "===== $UI : $NAME =====" - # try to compile - bin/build.sh "$TARGET" - - # track result, and rename compiled files - if [ 0 = $? ] ; then - mv -f "ui/$UI/$UI".hex hex/"$UI".$NAME.hex + # try to compile, track result, and rename compiled files + if bin/build.sh "$TARGET" ; then + mv -f "ui/$UI/$UI".hex "hex/$UI.$NAME.hex" echo " > hex/$UI.$NAME.hex" - PASS=$(($PASS + 1)) + PASS=$((PASS + 1)) PASSED="$PASSED $NAME" else echo "ERROR: build failed" - FAIL=$(($FAIL + 1)) + FAIL=$((FAIL + 1)) FAILED="$FAILED $NAME" fi diff --git a/bin/build.sh b/bin/build.sh index 0c3b107..9b4b0b3 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -6,7 +6,7 @@ # Instead of using a Makefile, since most of the firmwares here build in the # same exact way, here's a script to do the same thing -if [ -z "$1" ]; then +if [ 0 = "$#" ]; then echo "Usage: build.sh TARGET USER" echo "Example: build.sh hw/hank/emisar-d4/anduril.h users/myuser" echo "(but USER isn't implemented yet)" @@ -14,18 +14,19 @@ if [ -z "$1" ]; then fi # repo root dir -BASEDIR=$(dirname $(dirname "$0")) +BASEDIR=$(dirname "$(dirname "$0")") -TARGET=$1 ; shift -UI=$(basename $TARGET .h) -MODEL=$(dirname $TARGET) +TARGET="$1" ; shift +ARGS="$*" +UI=$(basename "$TARGET" .h) +MODEL=$(dirname "$TARGET") PROGRAM="ui/$UI/$UI" # figure out the model number -MODEL_NUMBER=$(head -1 $MODEL/model) +MODEL_NUMBER=$(head -1 "$MODEL/model") # figure out the MCU type and set some vars -eval $( bin/detect-mcu.sh "$TARGET" ) +eval "$( bin/detect-mcu.sh "$TARGET" )" # detect and enable a relevant Atmel DFP if [[ $MCUNAME =~ "attiny" ]]; then @@ -56,23 +57,19 @@ export LDFLAGS="-fgnu89-inline" export OBJCOPYFLAGS='--set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex --remove-section .fuse' export OBJS=$PROGRAM.o -OTHERFLAGS="-DCFG_H=$TARGET -DMODEL_NUMBER=\"$MODEL_NUMBER\"" -for arg in "$*" ; do - OTHERFLAGS="$OTHERFLAGS $arg" -done +OTHERFLAGS="-DCFG_H=$TARGET -DMODEL_NUMBER=\"$MODEL_NUMBER\" $ARGS" function run () { - #echo $1 ; shift - #echo $* - $* - if [ x"$?" != x0 ]; then exit 1 ; fi + #echo "$1" ; shift + #echo "$*" + $* || exit 1 } -run $CPP $OTHERFLAGS $CPPFLAGS -o foo.cpp $PROGRAM.c -grep -a -E -v '^#|^$' foo.cpp > $PROGRAM.cpp ; rm foo.cpp -run $CC $OTHERFLAGS $CFLAGS -o $PROGRAM.o -c $PROGRAM.c -run $CC $OFLAGS $LDFLAGS -o $PROGRAM.elf $PROGRAM.o -run $OBJCOPY $OBJCOPYFLAGS $PROGRAM.elf $PROGRAM.hex +run "$CPP" "$OTHERFLAGS" "$CPPFLAGS" -o foo.cpp "$PROGRAM.c" +grep -a -E -v '^#|^$' foo.cpp > "$PROGRAM.cpp" ; rm foo.cpp +run "$CC" "$OTHERFLAGS" "$CFLAGS" -o "$PROGRAM.o" -c "$PROGRAM.c" +run "$CC" "$OFLAGS" "$LDFLAGS" -o "$PROGRAM.elf" "$PROGRAM.o" +run "$OBJCOPY" "$OBJCOPYFLAGS" "$PROGRAM.elf" "$PROGRAM.hex" # deprecated #run avr-size -C --mcu=$MCUNAME $PROGRAM.elf | grep Full -run avr-objdump -Pmem-usage $PROGRAM.elf | grep -E 'Full|Device' | sed 's/^/ /;' +run avr-objdump -Pmem-usage "$PROGRAM".elf | grep -E 'Full|Device' | sed 's/^/ /;' diff --git a/bin/detect-mcu.sh b/bin/detect-mcu.sh index 8a93e21..57670e2 100755 --- a/bin/detect-mcu.sh +++ b/bin/detect-mcu.sh @@ -15,7 +15,7 @@ TARGET=$1 while [ -n "$TARGET" ]; do #echo "... $TARGET" if [ -f "$TARGET" ]; then # use the dir/$UI.h file - ATTINY=$(grep 'ATTINY:' $TARGET | awk '{ print $3 }') + ATTINY=$(grep 'ATTINY:' "$TARGET" | awk '{ print $3 }') if [ -n "$ATTINY" ]; then echo "export MCUNAME=attiny${ATTINY}" echo "export MCU=0x${ATTINY}" @@ -39,7 +39,7 @@ while [ -n "$TARGET" ]; do # move up one dir # if target doesn't change here, exit to avoid infinite loop FOO="$TARGET" - TARGET=$(dirname $TARGET) + TARGET=$(dirname "$TARGET") [ "$FOO" = "$TARGET" ] && exit 1 done diff --git a/bin/flash-tiny13-fuses.bat b/bin/flash-tiny13-fuses.bat deleted file mode 100755 index cec982e..0000000 --- a/bin/flash-tiny13-fuses.bat +++ /dev/null @@ -1 +0,0 @@ -avrdude -c usbasp -p t13 -u -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m diff --git a/bin/flash-tiny13-fuses.sh b/bin/flash-tiny13-fuses.sh deleted file mode 100755 index fe479a8..0000000 --- a/bin/flash-tiny13-fuses.sh +++ /dev/null @@ -1,8 +0,0 @@ -#/bin/sh -# 4.8 MHz (~4.0 MHz actual), 4ms boot delay, enable flashing -# (everything else disabled) -# Use low fuse 0x75 for 4ms startup delay, -# or 0x79 for 64ms (useful on a twisty light) -avrdude -c usbasp -p t13 -u -Ulfuse:w:0x75:m -Uhfuse:w:0xFF:m - -# http://www.engbedded.com/cgi-bin/fcx.cgi?P_PREV=ATtiny13A&P=ATtiny13A&M_LOW_0x0F=0x05&M_LOW_0x80=0x00&M_HIGH_0x06=0x06&B_SPIEN=P&B_SUT1=P&B_CKSEL1=P&V_LOW=75&V_HIGH=FF&O_HEX=Apply+values diff --git a/bin/flash-tiny13.bat b/bin/flash-tiny13.bat deleted file mode 100755 index db75fd8..0000000 --- a/bin/flash-tiny13.bat +++ /dev/null @@ -1 +0,0 @@ -avrdude -p t13 -c usbasp -u -Uflash:w:%1:a diff --git a/bin/flash-tiny13.sh b/bin/flash-tiny13.sh deleted file mode 100755 index 47b2bfe..0000000 --- a/bin/flash-tiny13.sh +++ /dev/null @@ -1,3 +0,0 @@ -#/bin/sh -FIRMWARE=$1 -avrdude -c usbasp -p t13 -u -Uflash:w:$FIRMWARE diff --git a/bin/flash-tiny1616.sh b/bin/flash-tiny1616.sh index 44d716c..3ad37b9 100755 --- a/bin/flash-tiny1616.sh +++ b/bin/flash-tiny1616.sh @@ -1,5 +1,5 @@ -#/bin/sh -FIRMWARE=$1 +#!/usr/bin/env sh +FIRMWARE="$1" if [ -z "$AVRDUDE_TTYUSB" ]; then AVRDUDE_TTYUSB=/dev/ttyUSB0 ; fi # In your shell config: @@ -7,8 +7,8 @@ if [ -z "$AVRDUDE_TTYUSB" ]; then AVRDUDE_TTYUSB=/dev/ttyUSB0 ; fi # export AVRDUDE_CONF="-C$HOME/path/to/jtag2updi/avrdude.conf" # export AVRDUDE_TTYUSB="/dev/ttyUSB2" -avrdude $AVRDUDE_CONF \ +avrdude "$AVRDUDE_CONF" \ -c jtag2updi \ - -P $AVRDUDE_TTYUSB \ + -P "$AVRDUDE_TTYUSB" \ -p t1616 \ - -u -Uflash:w:$FIRMWARE + -u -Uflash:w:"$FIRMWARE" diff --git a/bin/flash-tiny1634-fuses.sh b/bin/flash-tiny1634-fuses.sh index 1bc73e1..5b95411 100755 --- a/bin/flash-tiny1634-fuses.sh +++ b/bin/flash-tiny1634-fuses.sh @@ -1,4 +1,4 @@ -#/bin/sh +#!/usr/bin/env sh # 8 MHz, 64ms boot delay, enable flashing # (everything else disabled) # Use low fuse 0xD2 for 4ms startup delay, diff --git a/bin/flash-tiny1634.sh b/bin/flash-tiny1634.sh index 2eb9b77..5516d08 100755 --- a/bin/flash-tiny1634.sh +++ b/bin/flash-tiny1634.sh @@ -1,3 +1,3 @@ -#/bin/sh -FIRMWARE=$1 -avrdude -c usbasp -p t1634 -u -Uflash:w:$FIRMWARE +#!/usr/bin/env sh +FIRMWARE="$1" +avrdude -c usbasp -p t1634 -u -Uflash:w:"$FIRMWARE" diff --git a/bin/flash-tiny25-fuses.sh b/bin/flash-tiny25-fuses.sh deleted file mode 100755 index 65d5b1d..0000000 --- a/bin/flash-tiny25-fuses.sh +++ /dev/null @@ -1,8 +0,0 @@ -#/bin/sh -# 8 MHz, 4ms boot delay, enable flashing -# (everything else disabled) -# Use low fuse 0xD2 for 4ms startup delay, -# or 0xE2 for 64ms (useful on a twisty light) -avrdude -c usbasp -p t25 -u -U lfuse:w:0xd2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m - -# http://www.engbedded.com/cgi-bin/fcx.cgi?P_PREV=ATtiny25&P=ATtiny25&M_LOW_0x3F=0x22&M_HIGH_0x07=0x07&M_HIGH_0x20=0x00&B_SPIEN=P&B_SUT0=P&B_CKSEL3=P&B_CKSEL2=P&B_CKSEL0=P&V_LOW=E2&V_HIGH=DF&V_EXTENDED=FF&O_HEX=Apply+values diff --git a/bin/flash-tiny25.sh b/bin/flash-tiny25.sh deleted file mode 100755 index 9975671..0000000 --- a/bin/flash-tiny25.sh +++ /dev/null @@ -1,3 +0,0 @@ -#/bin/sh -FIRMWARE=$1 -avrdude -c usbasp -p t25 -u -Uflash:w:$FIRMWARE diff --git a/bin/flash-tiny85-fuses.sh b/bin/flash-tiny85-fuses.sh index f49049a..d73eae0 100755 --- a/bin/flash-tiny85-fuses.sh +++ b/bin/flash-tiny85-fuses.sh @@ -1,4 +1,4 @@ -#/bin/sh +#!/usr/bin/env sh # 8 MHz, 64ms boot delay, enable flashing # (everything else disabled) # Use low fuse 0xD2 for 4ms startup delay, diff --git a/bin/flash-tiny85.sh b/bin/flash-tiny85.sh index 0f5a292..a0dfae9 100755 --- a/bin/flash-tiny85.sh +++ b/bin/flash-tiny85.sh @@ -1,3 +1,3 @@ -#/bin/sh -FIRMWARE=$1 -avrdude -c usbasp -p t85 -u -Uflash:w:$FIRMWARE +#!/usr/bin/env sh +FIRMWARE="$1" +avrdude -c usbasp -p t85 -u -Uflash:w:"$FIRMWARE" diff --git a/bin/flash.sh b/bin/flash.sh index 93fbdbc..a0eafc5 100755 --- a/bin/flash.sh +++ b/bin/flash.sh @@ -11,9 +11,9 @@ fi set -e -BASEDIR=$(dirname "$0") -export ATTINY=$1 ; shift -export PROGRAM=$1 ; shift +BASEDIR="$(dirname "$0")" +export ATTINY="$1" ; shift +export PROGRAM="$1" ; shift if [ ! -f "$PROGRAM" ]; then PROGRAM="$PROGRAM".hex ; fi -$BASEDIR/flash-tiny"$ATTINY"-fuses.sh -$BASEDIR/flash-tiny"$ATTINY".sh "$PROGRAM" +"$BASEDIR"/flash-tiny"$ATTINY"-fuses.sh +"$BASEDIR"/flash-tiny"$ATTINY".sh "$PROGRAM" -- cgit v1.2.3