From e378f9cd17a8615b866202068d492a0df38c6868 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Fri, 2 Oct 2020 22:53:12 -0700 Subject: [PATCH] Switch find_sketch to set an env variable, rather than return a value, to reduce the number of times we need to call it. Also, begin to add better support for: kaleidoscope-builder examples/Foo/Bar compile --- bin/kaleidoscope-builder | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/bin/kaleidoscope-builder b/bin/kaleidoscope-builder index 997bad61..727fa508 100755 --- a/bin/kaleidoscope-builder +++ b/bin/kaleidoscope-builder @@ -26,15 +26,15 @@ absolute_filename() { build_version () { - GIT_VERSION="$(cd "$(find_sketch)"; if [ -d .git ]; then echo -n '-g' && git describe --abbrev=4 --dirty --always; fi)" + GIT_VERSION="$(cd "${SKETCH_DIR}"; if [ -d .git ]; then echo -n '-g' && git describe --abbrev=4 --dirty --always; fi)" LIB_PROPERTIES_PATH="${LIB_PROPERTIES_PATH:-"../.."}" - LIB_VERSION="$(cd "$(find_sketch)"; (grep version= "${LIB_PROPERTIES_PATH}/library.properties" 2>/dev/null || echo version=0.0.0) | cut -d= -f2)${GIT_VERSION}" + LIB_VERSION="$(cd "${SKETCH_DIR}"; (grep version= "${LIB_PROPERTIES_PATH}/library.properties" 2>/dev/null || echo version=0.0.0) | cut -d= -f2)${GIT_VERSION}" } build_paths() { # We need that echo because we\re piping to cksum # shellcheck disable=SC2005 - SKETCH_IDENTIFIER="$(echo "$(absolute_filename "$(find_sketch)/${SKETCH}.ino")" | cksum | cut -d ' ' -f 1)-${SKETCH}.ino" + SKETCH_IDENTIFIER="$(echo "$(absolute_filename "${SKETCH_DIR}/${SKETCH}.ino")" | cksum | cut -d ' ' -f 1)-${SKETCH}.ino" KALEIDOSCOPE_TEMP_PATH="${KALEIDOSCOPE_TEMP_PATH:-${TMPDIR:-/tmp}/kaleidoscope-${USER}}" @@ -136,12 +136,17 @@ find_sketch () { echo "SKETCH, LIBRARY, SOURCEDIR, and ROOT need to be set before including this file!" >&2 exit 1 fi + + SKETCH_DIR="$SKETCH" + SKETCH_FILE=$(basename "$SKETCH") - for path in "examples/${LIBRARY}" \ + for path in "${SKETCH_DIR}" \ + "examples/${LIBRARY}" \ "src" \ "."; do - if [ -f "${path}/${SKETCH}.ino" ]; then - echo "${path}" + if [ -f "${path}/${SKETCH_FILE}.ino" ]; then + SKETCH_DIR="${path}" + SKETCH="${SKETCH_FILE}" return fi done @@ -324,6 +329,7 @@ hex_with_bootloader () { } maybe_build () { + find_sketch build_version build_paths build_filenames @@ -342,6 +348,7 @@ build () { } compile () { + find_sketch build_version build_paths build_filenames @@ -349,8 +356,6 @@ compile () { install -d "${OUTPUT_PATH}" - SKETCH_DIR="$(find_sketch)" - echo "Building ${SKETCH_DIR}/${SKETCH}" # This is defined in the (optional) user config.