aboutsummaryrefslogtreecommitdiff
path: root/Mk/Scripts
diff options
context:
space:
mode:
authorSteve Wills <swills@FreeBSD.org>2020-10-19 12:19:14 +0000
committerSteve Wills <swills@FreeBSD.org>2020-10-19 12:19:14 +0000
commitdd763c441c62074ddff2ca69be5ad95fb4ab0fdb (patch)
treed40f6d7315dfeda3422e9bc3b85c1d361d0a5653 /Mk/Scripts
parent7e010fa7b66c1e6151ad03d34d9450c4715b35f3 (diff)
downloadports-dd763c441c62074ddff2ca69be5ad95fb4ab0fdb.tar.gz
ports-dd763c441c62074ddff2ca69be5ad95fb4ab0fdb.zip
Notes
Diffstat (limited to 'Mk/Scripts')
-rw-r--r--[-rwxr-xr-x]Mk/Scripts/sed_checked.sh91
1 files changed, 10 insertions, 81 deletions
diff --git a/Mk/Scripts/sed_checked.sh b/Mk/Scripts/sed_checked.sh
index dd03284db720..9c8c270f6099 100755..100644
--- a/Mk/Scripts/sed_checked.sh
+++ b/Mk/Scripts/sed_checked.sh
@@ -1,84 +1,13 @@
#!/bin/sh
-# Rationale:
-# The ports tree has accumulated quite a bit of REINPLACE_CMD lines
-# in its Makefile. Some of these have gone stale as ports were updated
-# upstream, or as the ports have evolved.
-
-# For DEVELOPERS, we check the effectiveness of REINPLACE_CMD lines
-# by requesting backup files be written, and comparing them against
-# source files.
-
-set -eu
-
-DEBUG=:
-#DEBUG=echo
-
-check_dash_i() {
- # this must be called from a subshell so as not to clobber $@
- # WARNING: assumes that -i is given at least once!
- unset OPTIND
- $DEBUG >&2 DEBUG: check_dash_i "$@"
- while getopts :EI:ae:f:i:lnru var ; do
- $DEBUG >&2 DEBUG: option "$var" '"'"${OPTARG-""}"'"'
- case "$var" in [iI])
- last_i="$OPTARG"
- esac
- done
-
- $DEBUG >&2 DEBUG: last_i='"'"$last_i"'"'
- printf '"%s"\n' "$last_i"
-}
-
-shadowed="$( (check_dash_i -i.bak "$@") )"
-if [ "$shadowed" != '".bak"' ] ; then
- echo >&2 "WARNING: $0 -i.bak clobbered by caller's backup suffix $shadowed"
-fi
-
-${SED-/usr/bin/sed} -i.bak "$@"
-check() {
- issues=0
- files=0
- args=
- for x in "${@}" ; do
- # we decide very simply whether the argument we are looking at is
- # a sed command or a file: if it's not a regular file, it must be
- # a sed argument worth collecting for our warning message,
- # so that maintainers can identify the failing sed command.
- #
- # We cannot easily relate to Makefile lines here.
- if [ -f "${x}" ]; then
- # File? Check if sed was effective.
- files=$(($files + 1))
- if cmp -s "${x}" "${x}".bak ; then
- issues=$(($issues + 1))
- if [ $issues -eq 1 ] ; then
- echo "sed failed:${args} ..."
- fi
- echo " - file content unchanged from backup: ${x#${WRKSRC}/}"
- fi
- else
- # Not a file? Collect sed(1) command.
- args="${args} ${x}"
- fi
- done
-
- if [ ${issues} -gt 0 ] ; then
- action="review"
- if [ ${issues} -eq ${files} ] ; then
- action=" FIX " # blanks at either end
- else
- action="review"
- fi
- echo "--- issues found: ${issues}, files to edit: ${files}, please ${action} ---"
+set -e
+/usr/bin/sed -i.bak "$@"
+for x in "${@}" ; do
+ if [ -f "${x}" ]; then
+ if cmp -s "${x}" "${x}".bak ; then
+ if [ ! -z "${REWARNFILE}" ]; then
+ echo - - REINPLACE_CMD ran, but did not modify file contents: ${x#${WRKSRC}/} >> ${REWARNFILE}
+ fi
+ fi
fi
-}
-
-if [ ! -z "${REWARNFILE}" ] ; then
- check "$@" | tee -a ${REWARNFILE}
- # if ${REWARNFILE} is a regular file (not /dev/null) and empty, delete it.
- if [ -f "${REWARNFILE}" -a ! -s "${REWARNFILE}" ] ; then rm -f "${REWARNFILE}" ; fi
-else
- check "$@"
-fi
-
+done