parent
4c23591a1f
commit
7e43c91eb2
@ -1,119 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# kaleidoscope-builder - Kaleidoscope helper tool
|
|
||||||
# Copyright (C) 2017-2018 Keyboard.io, Inc.
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify it under
|
|
||||||
# the terms of the GNU General Public License as published by the Free Software
|
|
||||||
# Foundation, version 3.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License along with
|
|
||||||
# this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
######
|
|
||||||
###### Build and output configuration
|
|
||||||
######
|
|
||||||
|
|
||||||
|
|
||||||
_run_arduino_cli() {
|
|
||||||
"${ARDUINO_CLI}" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
_arduino_prop() {
|
|
||||||
pref=$1
|
|
||||||
# Strip the preference name. And then strip leading and trailing quotations
|
|
||||||
_arduino_props | grep --max-count=1 "${pref}=" | sed -e s/^.*"${pref}"=// -e 's/^"//' -e 's/"$//'
|
|
||||||
}
|
|
||||||
|
|
||||||
_arduino_props() {
|
|
||||||
if [ "x${_ARDUINO_PREFS}x" == "xx" ]; then
|
|
||||||
_ARDUINO_PREFS=$(_run_arduino_cli --fqbn "${FQBN}" compile --show-properties "${SKETCH_FILE_PATH}")
|
|
||||||
fi
|
|
||||||
echo "$_ARDUINO_PREFS"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
_find_sketch() {
|
|
||||||
if [ -z "${SKETCH_FILE_PATH}" ] || [ ! -f "${SKETCH_FILE_PATH}" ]; then
|
|
||||||
# Didn't find a sketch
|
|
||||||
echo "I couldn't find your sketch (.ino file)" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cmd_flash() {
|
|
||||||
#TODO (arduino team) I'd love to do this with their json output
|
|
||||||
#but it's short some of the data we kind of need
|
|
||||||
port=$(_run_arduino_cli board list --format=text | grep "$FQBN" |cut -d' ' -f 1)
|
|
||||||
|
|
||||||
flashing_instructions=$(_arduino_prop 'build.flashing_instructions')
|
|
||||||
: "${flashing_instructions:="If your keyboard needs you to do something to put it in flashing mode, do that now."}"
|
|
||||||
|
|
||||||
printf '%b\n\n' "${flashing_instructions}"
|
|
||||||
echo "When you're ready to proceed, press 'Enter'."
|
|
||||||
|
|
||||||
# We do not want to permit line continuations here. We just want a newline.
|
|
||||||
|
|
||||||
# shellcheck disable=SC2162
|
|
||||||
read
|
|
||||||
|
|
||||||
_run_arduino_cli upload --fqbn "${FQBN}" --port "${port}" "${ARDUINO_VERBOSE}"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
cmd_help() {
|
|
||||||
cat <<-EOF
|
|
||||||
Usage: $0 SKETCH commands...
|
|
||||||
|
|
||||||
Runs all of the commands in the context of the Sketch.
|
|
||||||
|
|
||||||
Available commands:
|
|
||||||
|
|
||||||
help
|
|
||||||
This help screen.
|
|
||||||
|
|
||||||
compile
|
|
||||||
Compiles the sketch.
|
|
||||||
|
|
||||||
clean
|
|
||||||
Cleans up the output directory.
|
|
||||||
|
|
||||||
size-map
|
|
||||||
Displays the size map for the sketch.
|
|
||||||
|
|
||||||
disassemble
|
|
||||||
Decompile the sketch.
|
|
||||||
|
|
||||||
flash
|
|
||||||
Flashes the firmware using avrdude.
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ $# -lt 1 ]; then
|
|
||||||
cmd_help
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
|
||||||
|
|
||||||
if [ $# -eq 1 ]; then
|
|
||||||
cmd="$(echo "$1" | tr '-' '_')"
|
|
||||||
"cmd_${cmd}"
|
|
||||||
exit $?
|
|
||||||
else
|
|
||||||
"You passed more than two arguments to $0"
|
|
||||||
help
|
|
||||||
exit 1
|
|
||||||
/
|
|
||||||
fi
|
|
Loading…
Reference in new issue