34 lines
550 B
Bash
Executable File
34 lines
550 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
cd -- "$(dirname -- "$0")"
|
|
|
|
desync=false
|
|
|
|
case "${1:-}" in
|
|
-d|--desync)
|
|
desync=true
|
|
;;
|
|
"")
|
|
;;
|
|
*)
|
|
printf 'Usage: %s [--desync|-d]\n' "$0" >&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
for path in */; do
|
|
[ -d "$path" ] || continue
|
|
|
|
name=${path%/}
|
|
|
|
if "$desync"; then
|
|
printf 'Unstowing %s...\n' "$name"
|
|
stow --delete --target "$HOME" --verbose "$name"
|
|
else
|
|
printf 'Stowing %s...\n' "$name"
|
|
stow --restow --target "$HOME" --verbose "$name"
|
|
fi
|
|
done
|