aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/scripts
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-03-02 19:09:29 -0600
committerToby Vincent <tobyv13@gmail.com>2022-03-02 19:09:29 -0600
commit6a36592700b75e3658584db672f09ee33b2ba840 (patch)
treedd908e0eadd96e168f2d723e4d778ee3e037b81b /scripts
parent10c8ca3c945a1bf7adffbb1dbac0789be85387e0 (diff)
feat: woof
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/td.sh61
1 files changed, 44 insertions, 17 deletions
diff --git a/scripts/td.sh b/scripts/td.sh
index 44ca0ab..968c98b 100755
--- a/scripts/td.sh
+++ b/scripts/td.sh
@@ -1,6 +1,16 @@
#!/bin/sh
+TEMP=$(getopt -o hf --long help,force \
+ -n 'javawrap' -- "$@")
+
+if [ $? != 0 ]; then
+ echo "Terminating..." >&2
+ exit 1
+fi
+
+eval set -- "$TEMP"
SCRIPT="$(basename $0)"
+ENV_CACHE="${HOME}/.cache/td/.env"
help() {
cat <<-EOF
@@ -43,22 +53,6 @@ echo_err() {
echo >&2 "$SCRIPT: $@"
}
-rm_args="-r"
-while test $# -gt 0; do
- case $1 in
- --help | -h)
- help
- return 0
- ;;
- --force | -f)
- rm_args="-rf"
- shift
- ;;
- *) break ;;
-
- esac
-done
-
show() {
if [ ! -n "$TD" ]; then
echo_err "Not set"
@@ -82,6 +76,7 @@ remove() {
cd "$TD_ORIGIN"
fi
+ rm "$ENV_CACHE" -rf
unset TD
unset TD_ORIGIN
}
@@ -92,22 +87,54 @@ create() {
td=$(mktemp -d)
export TD="$td"
- export TD_ORIGIN="$PWD"
+ update-origin
echo "created $TD"
cd "$TD"
}
+update-origin() {
+ export TD_ORIGIN="$PWD"
+ cat >$ENV_CACHE <<-EOF
+TD=$TD
+TD_ORIGIN=$TD_ORIGIN
+EOF
+}
+
toggle() {
if [ "$PWD" = "$TD" ]; then
cd "$TD_ORIGIN"
elif [ -n "$TD" ]; then
+ update-origin
cd "$TD"
else
create
fi
}
+if [ -f "$ENV_CACHE" ]; then
+ export $(cat "$ENV_CACHE" | xargs)
+fi
+
+rm_args="-r"
+while test $# -gt 0; do
+ case $1 in
+ --help | -h)
+ help
+ return 0
+ ;;
+ --force | -f)
+ rm_args="-rf"
+ shift
+ ;;
+ --)
+ shift
+ break
+ ;;
+ *) break ;;
+ esac
+done
+
case $1 in
ls | list | show)
show