From 60e8c60425dd8caa35dbd31e478e453f951db3eb Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 13 Feb 2014 18:08:25 +0100 Subject: [PATCH] Emacs: some sh skels --- .emacs.d/mode-shell.el | 68 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/.emacs.d/mode-shell.el b/.emacs.d/mode-shell.el index 1a30faeb..3a3166cb 100644 --- a/.emacs.d/mode-shell.el +++ b/.emacs.d/mode-shell.el @@ -29,4 +29,72 @@ otherwise use 'sh-shell-file'." (lambda () (shell-set-interpreter))) +(define-skeleton sh-for + "Insert a for loop. See `sh-feature'. This overrides vanilla function." + nil + "for " (setq str (skeleton-read "Index variable: " "i")) + '(setq v1 (skeleton-read "Index values: " "")) + (unless (string= v1 "") + (concat " in " v1)) + "; do" \n + > _ \n + "done" > \n) + +(define-skeleton sh-check + "Insert a function checking for presence in PATH." + nil + "check() +{ + for i ; do + if ! command -v $i >/dev/null 2>&1; then + echo \"'$i' not found in PATH. Exiting.\" >&2 + exit 1 + fi + done +} +") + + +(define-skeleton sh-getopts + "Insert a getops prototype." + nil + "_printhelp () +{ + cat</dev/null 2>&1 && " @ _) + (provide 'mode-shell)