clm5/tools/mkprocdata_map/mkprocdata_map_functions.bash
2024-05-09 15:14:01 +08:00

58 lines
1.5 KiB
Bash

#!/bin/bash
# This file contains functions used by other bash scripts in this directory.
# This function echoes the command given by $1 (cmd), then executes it.
# However, if $2 (dryrun) is non-zero, then it only does the echo, not the execution.
# Usage: do_cmd cmd dryrun
# Returns 0 on success, non-zero on failure; if there is an error, the error string is echoed.
function do_cmd {
if [[ $# -ne 2 ]]; then
echo "ERROR in do_cmd: wrong number of arguments: expected 2, received $#"
exit 1
fi
local cmd=$1
local dryrun=$2
echo $cmd
if [ $dryrun -eq 0 ]; then
# We use 'eval $cmd' rather than just '$cmd', because the
# latter doesn't work right if the command contains any quoted
# strings (e.g., svn ci -m "this is my message")
eval $cmd
if [ $? -ne 0 ]; then
echo "ERROR in do_cmd: error executing command"
exit 2
fi
fi
return 0
}
# make sure that the given file name argument was provided, and that
# the file exists; exit the script with a usage message if either of
# these is not true
#
# Usage: check_file_arg filename_arg description
# (description is echoed if there is an error)
# Example: check_file_arg "$input_file" "input"
# (note that $input_file must be in quotes)
function check_file_arg {
local filename=$1
local description=$2
if [ -z "$filename" ]; then
echo "ERROR: Must specify $description file"
Usage
exit 1
fi
if [ ! -f $filename ]; then
echo "ERROR: Can't find $description file: $filename"
Usage
exit 1
fi
}