summaryrefslogtreecommitdiff
path: root/.local/bin/development
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/development')
-rwxr-xr-x.local/bin/development/envrun55
-rwxr-xr-x.local/bin/development/gi8
-rwxr-xr-x.local/bin/development/gitignore6
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