changeset 281:71882cd1c362

Check for needed programs Check for dfu-util and screen before using them. Also aborts if teensy_loader_cli compilation fails. Uses the type builtin to determine if a command exists. See here: https://gist.github.com/sdelmas/7377271
author Rowan Decker <Smasher816@gmail.com>
date Thu, 12 Feb 2015 19:42:01 -0800
parents 18b61e53753c
children a133945a31a8 f9c406854bc2 48454987f96a
files LoadFile/load.dfu LoadFile/load.teensy LoadFile/winload.teensy
diffstat 3 files changed, 23 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/LoadFile/load.dfu	Thu Feb 12 19:37:19 2015 -0800
+++ b/LoadFile/load.dfu	Thu Feb 12 19:42:01 2015 -0800
@@ -54,13 +54,23 @@
 
 # Load via dfu-util
 # Used for McHCK based uCs
-dfu-util -D @TARGET_BIN@
-EXIT_STATUS=$?
+if type dfu-util &>/dev/null; then
+	dfu-util -D @TARGET_BIN@
+	EXIT_STATUS=$?
+else
+	echo "dfu-util is required to reprogram the device"
+	exit 3
+fi
 
 # Load Screen Session if specified
 if (( "$EXIT_STATUS" == "0" )) && [[ "$AUTO_SCREEN_SESSION" != "" ]]; then
-	sleep 0.1
-	screen $AUTO_SCREEN_SESSION
+	if type screen &>/dev/null; then
+		sleep 0.1
+		screen $AUTO_SCREEN_SESSION
+	else
+		echo "screen is not installed"
+		exit 3
+	fi
 fi
 
 exit $EXIT_STATUS
--- a/LoadFile/load.teensy	Thu Feb 12 19:37:19 2015 -0800
+++ b/LoadFile/load.teensy	Thu Feb 12 19:42:01 2015 -0800
@@ -50,7 +50,7 @@
 	mkdir -p teensy-loader-cli
 	cd teensy-loader-cli
 	cmake -G "Unix Makefiles" @CMAKE_SOURCE_DIR@/LoadFile
-	make
+	make || exit 3
 	cd -
 fi
 
@@ -68,8 +68,13 @@
 
 # Load Screen Session if specified
 if (( "$EXIT_STATUS" == "0" )) && [[ "$AUTO_SCREEN_SESSION" != "" ]]; then
-	sleep 0.1
-	screen $AUTO_SCREEN_SESSION
+	if type screen &>/dev/null; then
+		sleep 0.1
+		screen $AUTO_SCREEN_SESSION
+	else
+		echo "screen is not installed"
+		exit 3
+	fi
 fi
 
 exit $EXIT_STATUS
--- a/LoadFile/winload.teensy	Thu Feb 12 19:37:19 2015 -0800
+++ b/LoadFile/winload.teensy	Thu Feb 12 19:42:01 2015 -0800
@@ -49,7 +49,7 @@
 	mkdir -p teensy-loader-cli
 	cd teensy-loader-cli
 	cmake -G "Unix Makefiles" $(cygpath -u @CMAKE_SOURCE_DIR@/LoadFile)
-	make
+	make || exit 3
 	cd -
 fi