summary refs log tree commit diff
path: root/.vim/after/snippets/sh.snippets
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2021-11-02 17:30:24 +0100
committerRobert Günzler <r@gnzler.io>2021-11-02 19:06:47 +0100
commit15a7ac4890dea48be140350c295d4d9ea05292ee (patch)
treee0405ddaa98fa30ec336d2504a244e52b4910524 /.vim/after/snippets/sh.snippets
parent3768a6c1488c148cc07481687a47cb7cce02ad35 (diff)
vim: switch from ultisnips+snippets.nvim to snippy
Diffstat (limited to '.vim/after/snippets/sh.snippets')
-rw-r--r--.vim/after/snippets/sh.snippets48
1 files changed, 48 insertions, 0 deletions
diff --git a/.vim/after/snippets/sh.snippets b/.vim/after/snippets/sh.snippets
new file mode 100644
index 0000000..99b8cb7
--- /dev/null
+++ b/.vim/after/snippets/sh.snippets
@@ -0,0 +1,48 @@
+snippet skel "skeleton"
+	#!/bin/sh
+	
+	set -e
+	[ -n "$DEBUG" ] && set -x
+	
+	$0
+snippet usage "usage"
+	usage() {
+		printf "usage: %s" "$(basename "\$0")\n"
+		printf "\n"
+		printf "$1\n"
+	}
+	
+	case "\$1" in
+	-h)	usage && exit 0 ;;
+	esac
+	
+	$0
+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))
+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
+snippet doc "script docs"
+	#
+	# DESCRIPTION:
+	#  $1
+	#
+	$0