diff options
-rwxr-xr-x | install.sh | 22 |
1 files changed, 5 insertions, 17 deletions
@@ -10,25 +10,13 @@ if [ -r .installed ]; then export DOTFILES_INSTALLED fi -printf "%s: Removing bad links\n" "$0" -{ - git log --name-only --no-renames --diff-filter=D --format=format: "$DOTFILES_INSTALLED" HEAD - git diff --name-only --no-renames --diff-filter=D HEAD - cat .untracked 2>/dev/null -} | sort -u | while read -r f; do - if [ -L "$TARGET/${f#*/}" ] && [ ! -e "$TARGET/${f#*/}" ]; then - rm -v "$TARGET/${f#*/}" - fi -done - -git ls-files --exclude-standard --others >.untracked -if [ ! -s .untracked ]; then - rm -f .untracked -fi - printf "%s: Stowing packages\n" "$0" # shellcheck disable=SC2086 -stow "$@" ${1:-*}/ +stow -R "$@" ${1:-*}/ 2>&1 | tac | awk ' + /\(reverts previous action\)$/ { reverted[$2] = 1; next } + /^LINK:/ { print $0 } + /^UNLINK:/ { if (!reverted[$2]) { print $0 } } +' | tac printf "%s: Installing packages\n" "$0" for f in ${1:-*}/install.sh; do |