aboutsummaryrefslogtreecommitdiff
path: root/lib/util.bash
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2020-03-22 13:44:01 +0100
committerPatrick Spek <p.spek@tyil.nl>2020-03-22 13:44:01 +0100
commit1548063b6ac54affecccc19872b1ffeed64f0887 (patch)
tree645d7ec3faeff40be96172b134023510334b5b6a /lib/util.bash
parente335ffb41f7d65f369a8e4170affcd8d68a40be2 (diff)
Work out (most?) issues reported by shellcheck
Diffstat (limited to 'lib/util.bash')
-rw-r--r--lib/util.bash67
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