From 147c0220e19e4de7e0d4b23f8f18de66a607d350 Mon Sep 17 00:00:00 2001 From: Tim McCarthy Date: Fri, 28 Mar 2025 15:37:53 -0700 Subject: [PATCH] Add shell snippets --- emacs/snippets/sh-mode/bang | 6 ++++++ emacs/snippets/sh-mode/sdir | 14 ++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 emacs/snippets/sh-mode/bang create mode 100644 emacs/snippets/sh-mode/sdir diff --git a/emacs/snippets/sh-mode/bang b/emacs/snippets/sh-mode/bang new file mode 100644 index 0000000..5e11f0e --- /dev/null +++ b/emacs/snippets/sh-mode/bang @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: bang +# key: ! +# -- +#!/usr/bin/env bash +$0 \ No newline at end of file diff --git a/emacs/snippets/sh-mode/sdir b/emacs/snippets/sh-mode/sdir new file mode 100644 index 0000000..49cf35e --- /dev/null +++ b/emacs/snippets/sh-mode/sdir @@ -0,0 +1,14 @@ +# -*- mode: snippet -*- +# name: the currently executing/sourced script's directory +# key: script-dir +# -- +# See https://stackoverflow.com/a/246128/3561275 +SOURCE="\${BASH_SOURCE[0]}" +while [ -h "\$SOURCE" ]; do # resolve \$SOURCE until the file is no longer a symlink + DIR="\$( cd -P "\$( dirname "\$SOURCE" )" >/dev/null 2>&1 && pwd )" + SOURCE="\$(readlink "\$SOURCE")" + [[ \$SOURCE != /* ]] && SOURCE="\$DIR/\$SOURCE" # if \$SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +DIR="\$( cd -P "\$( dirname "\$SOURCE" )" >/dev/null 2>&1 && pwd )" + +$0 \ No newline at end of file