# checks the result of the last command that was run, and if that failed,
# then this complains and exits from bash. the function parameters are
# used as the message to print as a complaint.
- function test_or_fail()
+ function test_or_die()
{
if [ $? -ne 0 ]; then
echo -e "\n\naction failed: $*\n\nExiting script..."
fi
}
- # like test_or_fail, but will keep going after complaining.
+ # like test_or_die, but will keep going after complaining.
function test_or_continue()
{
if [ $? -ne 0 ]; then
if [ -d "$src" ]; then
ln -s "$src" "$target"
- test_or_fail "Creating symlink from '$src' to '$target'"
+ test_or_die "Creating symlink from '$src' to '$target'"
fi
echo "Created symlink from '$src' to '$target'."
}
##############
+ # echoes the machine's hostname. can be used like so:
+ # local my_host=$(get_hostname)
+ function get_hostname()
+ {
+ # there used to be more variation in how to do this, but adopting mingw
+ # and cygwin tools really helped out.
+ local this_host=unknown
+ if [ "$OS" == "Windows_NT" ]; then
+ this_host=$(hostname)
+ elif [ ! -z "$(echo $MACHTYPE | grep apple)" ]; then
+ this_host=$(hostname)
+ elif [ ! -z "$(echo $MACHTYPE | grep suse)" ]; then
+ this_host=$(hostname --long)
+ elif [ -x "$(which hostname 2>/dev/null)" ]; then
+ this_host=$(hostname)
+ fi
+ echo "$this_host"
+ }
+
+ # makes sure that the provided "folder" is a directory and is writable.
+ function test_writeable()
+ {
+ local folder="$1"; shift
+ if [ ! -d "$folder" -o ! -w "$folder" ]; then return 1; fi
+ return 0
+ }
+
+ ##############
+
# NOTE: no more function definitions are allowed after this point.
function function_sentinel()
echo running tests on set_var_if_undefined.
flagrant=petunia
set_var_if_undefined flagrant forknordle
- test_or_fail "testing if defined variable would be whacked"
+ test_or_die "testing if defined variable would be whacked"
if [ $flagrant != petunia ]; then
echo set_var_if_undefined failed to leave the test variable alone
exit 1