diff options
author | Patrick Spek <p.spek@tyil.nl> | 2020-03-22 13:44:01 +0100 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2020-03-22 13:44:01 +0100 |
commit | 1548063b6ac54affecccc19872b1ffeed64f0887 (patch) | |
tree | 645d7ec3faeff40be96172b134023510334b5b6a /lib/util.bash | |
parent | e335ffb41f7d65f369a8e4170affcd8d68a40be2 (diff) |
Work out (most?) issues reported by shellcheck
Diffstat (limited to 'lib/util.bash')
-rw-r--r-- | lib/util.bash | 67 |
1 files changed, 40 insertions, 27 deletions
diff --git a/lib/util.bash b/lib/util.bash index 025aeba..8ca1a5e 100644 --- a/lib/util.bash +++ b/lib/util.bash @@ -1,5 +1,28 @@ #!/usr/bin/env bash +# Change the working directory. In usage, this is the same as using cd, +# however, it will make additional checks to ensure everything is going fine. +chgdir() { + cd -- "$1" || die "Failed to change directory to $1" +} + +# Read a particular value from a key/value configuration file. Using this +# function introduces a dependency on awk. +config_etc_kv() { + local file="$BASEDIR/etc/$1" + shift + + if [[ ! -f $file ]] + then + crit "Tried to read value for $1 from $file, but $file does not exist" + return + fi + + debug "Reading value for $1 from $file" + + awk -F= '$1 == "'"$1"'" { print $NF }' "$file" +} + # Log a message as error, and exit the program. This is intended for serious # issues that prevent the script from running correctly. The exit code can be # specified with -i, or will default to 1. @@ -11,13 +34,14 @@ die() { do case "$opt" in i) code=$OPTARG ;; + *) alert "Unused argument specified: $opt" ;; esac done shift $(( OPTIND -1 )) alert "$@" - exit ${code:-1} + exit "${code:-1}" } # Fetch a file from an URL. Using this function introduces a dependency on curl. @@ -29,12 +53,13 @@ fetch() { do case "$opt" in o) buffer=$OPTARG ;; + *) alert "Unused argument specified: $opt" ;; esac done shift $(( OPTIND -1 )) - [[ -z $buffer ]] && buffer="$(tempfile)" + [[ -z $buffer ]] && buffer="$(tmpfile)" notice "Downloading $1 to $buffer" @@ -49,27 +74,12 @@ fetch() { return $exit_code } -# Read a particular value from a key/value configuration file. Using this -# function introduces a dependency on awk. -config_etc_kv() { - local file="$BASEDIR/etc/$1" - shift - - if [[ ! -f $file ]] - then - crit "Tried to read value for $1 from $file, but $file does not exist" - return - fi - - debug "Reading value for $1 from $file" - - awk -F= '$1 == "'"$1"'" { print $NF }' "$file" -} - # Create a temporary directory. Similar to tempfile, but you'll get a directory # instead. -tempdir() { - local dir="$(mktemp -d)" +tmpdir() { + local dir + + dir="$(mktemp -d)" # Ensure the file was created succesfully if [[ ! -d "$dir" ]] @@ -79,26 +89,28 @@ tempdir() { debug "Temporary file created at $dir" - printf "$dir" + printf "%s" "$dir" } # Create a temporary file. In usage, this is no different from mktemp itself, # however, it will apply additional checks to ensure everything is going # correctly, and the files will be cleaned up automatically at the end. -tempfile() { +tmpfile() { local OPTIND local extension="tmp" + local file while getopts ":x:" opt do case "$opt" in x) extension=$OPTARG ;; + *) alert "Unused argument specified: $opt" ;; esac done shift $(( OPTIND -1 )) - local file="$(mktemp --suffix ".$extension")" + file="$(mktemp --suffix ".$extension")" # Ensure the file was created succesfully if [[ ! -f "$file" ]] @@ -108,11 +120,12 @@ tempfile() { debug "Temporary file created at $file" - printf "$file" + printf "%s" "$file" } +export -f chgdir export -f config_etc_kv export -f die export -f fetch -export -f tempdir -export -f tempfile +export -f tmpdir +export -f tmpfile |