summaryrefslogtreecommitdiffstatshomepage
path: root/install.sh
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2023-10-30 13:33:28 -0500
committerToby Vincent <tobyv@tobyvin.dev>2023-10-30 13:33:59 -0500
commit7116ce45b69cca0aef6cf3617565181c289fe3eb (patch)
tree388064f56131f553be7094bb249e367b84321ad8 /install.sh
parent3e25c56d62b1364fa5e8b2ae17bf208d90fb2176 (diff)
fix: fix install.sh dead link removal
Diffstat (limited to 'install.sh')
-rwxr-xr-xinstall.sh19
1 files changed, 8 insertions, 11 deletions
diff --git a/install.sh b/install.sh
index d2ffb34..22cfb6a 100755
--- a/install.sh
+++ b/install.sh
@@ -6,17 +6,14 @@ set -e
CDPATH='' cd -- "$(dirname -- "$0")" || exit
printf "%s: Removing bad links\n" "$0"
-(
- git diff-tree --no-commit-id --name-status e6051a3..HEAD -r
- git diff --no-commit-id --name-status -r
- git diff --no-commit-id --name-status -r --staged
-) |
- grep -oP 'D\t[^/]+/\K(.*)' |
- while read -r f; do
- if [ -L "../$f" ] && [ ! -e "../$f" ]; then
- rm -v "../$f"
- fi
- done
+{
+ git log --pretty=format: --name-only --no-renames --diff-filter=D
+ git status --porcelain --no-renames | grep -oP '^\s*\w*[DR?]+\w*\s*\K(.*)'
+} | sort -u | sed -n 's/^[^/]\+\//..\//p' | while read -r f; do
+ if [ -L "$f" ] && [ ! -e "$f" ]; then
+ rm -v "$f"
+ fi
+done
printf "%s: Stowing packages\n" "$0"
stow "$@" */