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