summary refs log tree commit diff
path: root/.vim/UltiSnips/sh.snippets
diff options
context:
space:
mode:
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