#!/bin/sh # xdiff [-u|-l] [DIR] - merge/diff/list XBPS .new-* files mergeutil() { vim -d "$1" "$2" && rm -vi "$1" } listutil() { printf '%s\n' "$1" } if [ "$1" = -u ]; then shift DIFF="diff -u" elif [ "$1" = -l ]; then shift DIFF=listutil else DIFF=mergeutil fi DIR=${1:-/etc} if ! [ -d "$DIR" ] ; then echo "$DIR is not a valid directory" >&2 exit 1 fi for newfile in $(find "$DIR" -name '*.new-*_*' | sort -V); do $DIFF "$newfile" "${newfile%.new-*_*}" done