1#!/bin/ksh 2# 3# $OpenBSD: diff.sh,v 1.5 2017/08/21 15:02:58 ajacoutot Exp $ 4# 5# Copyright (c) 2017 Robert Nagy <robert@openbsd.org> 6# 7# Permission to use, copy, modify, and distribute this software for any 8# purpose with or without fee is hereby granted, provided that the above 9# copyright notice and this permission notice appear in all copies. 10# 11# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18 19umask 0022 20 21trap exit HUP INT TERM 22 23diff -Parq $1 $2 2>&1 | grep ' differ$' | \ 24while IFS= read -r _d 25do 26 _o=$(echo $_d | cut -d ' ' -f2) 27 _n=$(echo $_d | cut -d ' ' -f4) 28 case "${_o##*.}" 29 in 30 a) 31 cmp -s ${_o} ${_n} 34 34 || echo ${_n} 32 ;; 33 1|3p) 34 # Needed for perl(1) because Pod::Man adds the build 35 # date in the man page; e.g. /usr/share/man1/pod2html.1: 36 # .TH POD2HTML 1 "2017-07-29" "perl v5.24.1" 37 _onm=$(mktemp) 38 _nnm=$(mktemp) 39 trap 'rm -f ${_onm} ${_nnm}' EXIT 40 sed -E '/([0-9]+-[0-9]+-[0-9]+|=+)/d' ${_o} > ${_onm} 41 sed -E '/([0-9]+-[0-9]+-[0-9]+|=+)/d' ${_n} > ${_nnm} 42 diff -q ${_onm} ${_nnm} >/dev/null || echo ${_n} 43 rm -f ${_onm} ${_nnm} 44 ;; 45 EFI|dat|db|tgz|*void|*dir|mk|cache-4) 46 ;; 47 *) 48 echo ${_n} 49 ;; 50 esac 51done 52