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