summary refs log tree commit diff
path: root/.vim/UltiSnips/sh.snippets
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2020-12-07 19:08:07 +0100
committerRobert Günzler <r@gnzler.io>2021-01-21 19:39:04 +0100
commitc3d57d8acc9446de9fded87081939706998fb033 (patch)
tree47b3a6d0b1c0282a2199007cdbc74392a6fbb53b /.vim/UltiSnips/sh.snippets
parent91abfe14227f79037c421d18fd3ae777abf87077 (diff)
vim: update snippets
Diffstat (limited to '.vim/UltiSnips/sh.snippets')
-rw-r--r--.vim/UltiSnips/sh.snippets57
1 files changed, 57 insertions, 0 deletions
diff --git a/.vim/UltiSnips/sh.snippets b/.vim/UltiSnips/sh.snippets
new file mode 100644
index 0000000..76538aa
--- /dev/null
+++ b/.vim/UltiSnips/sh.snippets
@@ -0,0 +1,57 @@
+snippet skel "skeleton"
+#!/bin/sh
+
+set -e
+[ -n "$DEBUG" ] && set -x
+
+$0
+endsnippet
+
+snippet usage "usage"
+usage() {
+	printf "usage: %s" "$(basename "\$0")\n"
+	printf "\n"
+	printf "$1\n"
+}
+
+case "\$1" in
+-h)	usage && exit 0 ;;
+esac
+
+$0
+endsnippet
+
+snippet getopt "while getopts"
+$2=
+while getopts $1h opt; do
+	case "$opt" in
+	$1)	$2=1 ;;
+	h|?)	printf "usage: %s [-h]\n" "$(basename "\$0")"
+		printf "\n"
+		printf "  -$1 \t $2\n"
+		printf "\n"
+		exit 2 ;;
+	esac
+done
+shift $((OPTIND - 1))
+endsnippet
+
+snippet deps "for app in"
+# check requirements
+for tool in $1; do
+	if ! command -v "$tool" >/dev/null; then
+		printf "%s: %s not installed but required\n" "$(basename "\$0")" "$tool" >&2
+		exit 1
+	fi
+done
+
+$0
+endsnippet
+
+snippet doc "script docs"
+#
+# DESCRIPTION:
+#  $1
+#
+$0
+endsnippet