diff options
Diffstat (limited to '.local/bin/development')
-rwxr-xr-x | .local/bin/development/envrun | 55 | ||||
-rwxr-xr-x | .local/bin/development/gi | 8 | ||||
-rwxr-xr-x | .local/bin/development/gitignore | 6 |
3 files changed, 63 insertions, 6 deletions
diff --git a/.local/bin/development/envrun b/.local/bin/development/envrun new file mode 100755 index 0000000..aad0822 --- /dev/null +++ b/.local/bin/development/envrun @@ -0,0 +1,55 @@ +#!/bin/sh + +help() { echo "envrun - run programs in an isolated home directory + +USAGE: + envrun [OPTION]... COMMAND + +OPTIONS: + -d ENVHOME use the ENVHOME environment directory + -h show this help message"; } + +while getopts 'd:h' o; do case "$o" in + d) export ENVHOME="$OPTARG" ;; + *) help >&2; exit ;; +esac done +shift $((OPTIND - 1)) + +export HOME="${ENVHOME:-"$PWD"}" +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_STATE_HOME="$HOME/.local/state" + +ensure_dirs() { + for dir in "$@"; do + [ -d "$dir" ] || { missing=1; break; } + done + + [ "$missing" = 1 ] || return + printf "\nFollowing directories will be created.\n\n" + for dir in "$@"; do + [ -d "$dir" ] || echo "$dir/" + done + + printf "\ncontinue? [y/N] " + read -r ans + case "$ans" in + y|Y) echo; mkdir -pv "$@"; echo ;; + *) exit ;; + esac +} + +ensure_dirs \ + "$XDG_CACHE_HOME" \ + "$XDG_CONFIG_HOME" \ + "$XDG_DATA_HOME" \ + "$XDG_STATE_HOME" + +[ "$#" -lt 1 ] && { + echo "Please provide a command to run." + exit +} + +"$@" + diff --git a/.local/bin/development/gi b/.local/bin/development/gi new file mode 100755 index 0000000..f7884a9 --- /dev/null +++ b/.local/bin/development/gi @@ -0,0 +1,8 @@ +#!/bin/sh + +# gi (git-ignore) - open current repo's gitingore file in $EDITOR + +[ -f .gitignore ] && { ${EDITOR:-nvim -p} .gitignore; exit; } + +TOPLEVEL="$(git rev-parse --show-toplevel)" || exit +find "$TOPLEVEL" -name ".gitignore" | xargs -r ${EDITOR:-nvim -p} diff --git a/.local/bin/development/gitignore b/.local/bin/development/gitignore deleted file mode 100755 index d78ff99..0000000 --- a/.local/bin/development/gitignore +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# gi - edit the Git Ignore file of current repo - -TOPLEVEL="$(git rev-parse --show-toplevel)" || exit -find "$TOPLEVEL" -name ".gitignore" | xargs -r nvim -p |