summaryrefslogtreecommitdiff
path: root/clean.sh
diff options
context:
space:
mode:
authorNathan Ringo <nathan@remexre.com>2024-11-16 12:38:37 -0600
committerNathan Ringo <nathan@remexre.com>2024-11-16 12:38:37 -0600
commit57331ba9756df043b5c665aa4952a0a7b38799e5 (patch)
tree0feb2ca5cbe38744088845b8bb105673016c1fac /clean.sh
Initial commit
Diffstat (limited to 'clean.sh')
-rwxr-xr-xclean.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/clean.sh b/clean.sh
new file mode 100755
index 0000000..caadbc0
--- /dev/null
+++ b/clean.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+cd "$(git rev-parse --show-toplevel)"
+
+if [ "$(git status --porcelain=v1 --ignored -z | grep -z '^!!' | wc -c)" = 0 ]; then
+ exit
+fi
+
+git status --porcelain=v1 --ignored -z \
+| grep -z '^!!' \
+| xargs -0 awk 'BEGIN { for(i = 1; i < ARGC; i++) printf "%s%c", substr(ARGV[i], 4), 0; }' \
+| xargs -0 rm -r