aboutsummaryrefslogtreecommitdiff
path: root/test/bin
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2016-08-02 16:56:53 +1200
committerTom Ryder <tom@sanctum.geek.nz>2016-08-02 16:56:53 +1200
commit75836ba0146d8e28b198ff15b875f8cf95901e35 (patch)
tree15eba71cef68277d82706006528ba0d148f845b8 /test/bin
parentAdd tests for awk/sed scripts (diff)
downloaddotfiles-75836ba0146d8e28b198ff15b875f8cf95901e35.tar.gz
dotfiles-75836ba0146d8e28b198ff15b875f8cf95901e35.zip
Slightly nicer text syntax
Also remove Awk test; because Awk can do things beyond simple filtering and may do something with its arguments other than reading them, it can't really be tested like that
Diffstat (limited to 'test/bin')
-rwxr-xr-xtest/bin28
1 files changed, 19 insertions, 9 deletions
diff --git a/test/bin b/test/bin
index ba3788bc..75c399de 100755
--- a/test/bin
+++ b/test/bin
@@ -1,13 +1,23 @@
#!/bin/sh
for bin in bin/* ; do
- if sed 1q "$bin" | grep -q 'bash$' ; then
- bash -n "$bin" || exit 1
- elif sed 1q "$bin" | grep -q 'sh$' ; then
- sh -n "$bin" || exit 1
- elif sed 1q "$bin" | grep -q 'awk -f$' ; then
- "$bin" /dev/null >/dev/null || exit 1
- elif sed 1q "$bin" | grep -q 'sed -f$' ; then
- "$bin" /dev/null >/dev/null || exit 1
- fi
+ hb=$(sed 1q "$bin") || exit
+ case $hb in
+ *bash)
+ bash -n "$bin" || exit 1
+ ;;
+ *sh)
+ sh -n "$bin" || exit 1
+ ;;
+ *'sed -f')
+ sed -f "$bin" /dev/null >/dev/null || exit 1
+ ;;
+ *'awk -f')
+ # Not sure how to test these yet
+ ;;
+ *)
+ printf 2>&1 'Unknown hashbang for %s\n' "$bin"
+ exit 1
+ ;;
+ esac
done
printf 'All shell scripts in bin parsed successfully.\n'