dotfiles/.local/bin/scripts/st-diff

20 lines
601 B
Plaintext
Raw Normal View History

2021-03-30 16:07:58 +00:00
#!/bin/sh
2021-05-07 10:31:14 +00:00
stats() {
stat --format '%n %A size %sB, birth: %.10w mod %.10y' "$@"
}
2021-04-19 08:39:08 +00:00
if test "$#" -gt 0
then
2021-05-07 10:31:14 +00:00
orig="$(st-unarchive "$1")"
( stats "$orig" "$1"; dif "$orig" "$@" ) |
less --RAW-CONTROL-CHARS --quit-on-intr --quit-if-one-screen
2021-04-19 08:39:08 +00:00
test "$?" -eq "2" && exit 1
echo "y|r to restore, n|d to delete, m to merge"
2021-04-19 08:39:08 +00:00
read reply
case "$reply" in
(y|r) st-restore "$1";;
(n|d) rm -v "$1";;
(m) touch /tmp/empty && git merge-file "$orig" /tmp/empty "$1" && nvim "$orig" && rm "$1";;
2021-04-19 08:39:08 +00:00
esac
else find -name '*sync-conflict*' -exec st-diff '{}' \;
fi