From 0b3dde0530513a3027de7d5f81a4386a118fce5c Mon Sep 17 00:00:00 2001 From: Steven Baltakatei Sandoval Date: Sun, 28 Jun 2020 22:57:31 +0000 Subject: [PATCH] fix(bkgpslog):Apply shellcheck corrections - Misuse of array and string ("$@" instead of "$*" in error messages) - Incorrect comparison ( [ "" -eq "" ] instead of [ "" = "" ] ) - Missing quotation marks around string variable. --- exec/bkgpslog | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/exec/bkgpslog b/exec/bkgpslog index d9297a6..9a3744a 100755 --- a/exec/bkgpslog +++ b/exec/bkgpslog @@ -29,7 +29,7 @@ checkapp() { #===Process Args=== for arg in "$@"; do #echo "DEBUG:processing arg:$arg" - if command -v $arg 1>/dev/null 2>&1; then # Check if arg is a valid command + if command -v "$arg" 1>/dev/null 2>&1; then # Check if arg is a valid command appRollCall[$arg]="true"; #echo "DEBUG:appRollCall[$arg]:"${appRollCall[$arg]} if ! [ "$returnState" = "false" ]; then returnState="true"; fi @@ -145,14 +145,31 @@ showVersion() { echoerr "$SCRIPT_VERSION" } # Display script version. vbm() { - if [ $OPTION_VERBOSE -eq "true" ]; then - echoerr "$@" + # Usage: vbm "DEBUG:verbose message here" + # Description: Prints verbose message ("vbm") to stderr if OPTION_VERBOSE is set to "true". + # Input: + # - OPTION_VERBOSE variable set by processArguments function. (ex: "true", "false") + # - "$@" positional arguments fed to this function. + # Output: stderr + # Script function dependencies: echoerr + # External function dependencies: echo + # Last modified: 2020-04-11T23:57Z + # Last modified by: Steven Baltakatei Sandoval + # License: GPLv3+ + # Ref./Attrib: + + if [ "$OPTION_VERBOSE" = "true" ]; then + FUNCTION_TIME=$(date --iso-8601=ns); # Save current time in nano seconds. + echoerr "[$FUNCTION_TIME] ""$*"; # Display argument text. fi + + # End function + return 0; # Function finished. } # Verbose message display function. processArguments() { while [ ! $# -eq 0 ]; do # While number of arguments ($#) is not (!) equal to (-eq) zero (0). echoerr "DEBUG:Starting processArguments while loop." - echoerr "DEBUG:Provided arguments are:""$@" + echoerr "DEBUG:Provided arguments are:""$*" case "$1" in --h | --help) showUsage; exit 1;; # Display usage. --version) showVersion; exit 1;; # Show version @@ -207,7 +224,7 @@ dateTimeShort(){ echo "$TIME_CURRENT_SHORT"; } # Get date&time without separators main() { - processArguments # Process arguments. + processArguments "$@" # Process arguments. if checkapp gpspipe && checkdir "$DIROUT"; then # Determine output file paths FILEOUT_NMEA="$(dateTimeShort)".."$SCRIPT_HOSTNAME"_location.nmea ; -- 2.30.2