fix(bkgpslog):Apply shellcheck corrections
authorSteven Baltakatei Sandoval <baltakatei@gmail.com>
Sun, 28 Jun 2020 22:57:31 +0000 (22:57 +0000)
committerSteven Baltakatei Sandoval <baltakatei@gmail.com>
Sun, 28 Jun 2020 22:57:31 +0000 (22:57 +0000)
- Misuse of array and string ("$@" instead of "$*" in error messages)
- Incorrect comparison ( [ "" -eq "" ] instead of [ "" = "" ] )
- Missing quotation marks around string variable.

exec/bkgpslog

index d9297a6d2e0869e8bf7614ab4561d63d4aa0fb92..9a3744a01cb97ab64d19138356ed74953d4d714a 100755 (executable)
@@ -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 ;