-#!/bin/bash
+#!/usr/bin/env bash
# Convenience script for loading firmware onto a dfu type device
# By default, initiates dfu-util
if [[ "$SERIAL_PORT" != "" ]] && [[ -e "$SERIAL_PORT" ]]; then
echo "NOTE: This may fail if the uC is in a bad state or does not support remote flashing"
printf "reload\r" > $SERIAL_PORT
- sleep 1
+ sleep 2
fi
# 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