meshtastic-firmware/bin/device-update.sh

57 wiersze
1.2 KiB
Bash
Czysty Zwykły widok Historia

#!/bin/sh
2020-05-07 02:43:17 +00:00
2023-01-21 13:34:29 +00:00
PYTHON=${PYTHON:-$(which python3 python | head -n 1)}
# Usage info
show_help() {
2023-01-21 13:34:29 +00:00
cat <<EOF
Usage: $(basename $0) [-h] [-p ESPTOOL_PORT] [-P PYTHON] [-f FILENAME|FILENAME]
Flash image file to device, leave existing system intact."
2020-05-07 02:43:17 +00:00
-h Display this help and exit
-p ESPTOOL_PORT Set the environment variable for ESPTOOL_PORT. If not set, ESPTOOL iterates all ports (Dangerrous).
-P PYTHON Specify alternate python interpreter to use to invoke esptool. (Default: "$PYTHON")
2022-11-24 11:30:15 +00:00
-f FILENAME The *update.bin file to flash. Custom to your device type.
EOF
}
2020-05-07 02:43:17 +00:00
while getopts ":hp:P:f:" opt; do
2023-01-21 13:34:29 +00:00
case "${opt}" in
h)
show_help
exit 0
;;
p)
export ESPTOOL_PORT=${OPTARG}
;;
P)
PYTHON=${OPTARG}
;;
f)
FILENAME=${OPTARG}
;;
*)
echo "Invalid flag."
show_help >&2
exit 1
;;
esac
done
2023-01-21 13:34:29 +00:00
shift "$((OPTIND - 1))"
[ -z "$FILENAME" -a -n "$1" ] && {
2023-01-21 13:34:29 +00:00
FILENAME=$1
shift
}
if [ -f "${FILENAME}" ] && [ -z "${FILENAME##*"update"*}" ]; then
printf "Trying to flash update ${FILENAME}"
2022-11-24 11:30:15 +00:00
$PYTHON -m esptool --baud 115200 write_flash 0x10000 ${FILENAME}
else
show_help
echo "Invalid file: ${FILENAME}"
fi
exit 0