diff options
author | John Marino <marino@FreeBSD.org> | 2016-02-14 09:59:08 +0000 |
---|---|---|
committer | John Marino <marino@FreeBSD.org> | 2016-02-14 09:59:08 +0000 |
commit | 75229eb39fe6c2f7940a5021e5ada83514768f76 (patch) | |
tree | b410f9c5277b3a7e57566c9c22488d9ba73e0966 /Tools | |
parent | 4e70493b380747ab71eb30d20b2f24c0f95f0219 (diff) | |
download | ports-75229eb39fe6c2f7940a5021e5ada83514768f76.tar.gz ports-75229eb39fe6c2f7940a5021e5ada83514768f76.zip |
Notes
Diffstat (limited to 'Tools')
-rwxr-xr-x | Tools/scripts/redundant-opt-files.sh | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Tools/scripts/redundant-opt-files.sh b/Tools/scripts/redundant-opt-files.sh new file mode 100755 index 000000000000..a86efb7e477c --- /dev/null +++ b/Tools/scripts/redundant-opt-files.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# redundant-opt-files.sh +# Written by John Marino (marino@FreeBSD.org) +# +# This script checks every option file against the default options of +# its port. If they are identical, it writes the full path of the ports +# option directory (typically in /var/db/ports) to stdout. +# It is typically used by Synth users to identify options files that can +# deleted in order to prevent future configuration check failures. + +portsdir=${PORTSDIR:-/usr/ports} +db_dir=$(/usr/bin/make -C ${portsdir}/devel/gmake -V PORT_DBDIR 2>/dev/null) + +if [ ! -d "${db_dir}" ]; then + echo "The ${db_dir} ports option directory does not exist" + echo "There is nothing more to do." + exit +fi + +catport() { + local category + local port + local workstr=${1#${db_dir}/} + local words=$(echo ${workstr} | /usr/bin/tr "_" " "); + for word in ${words}; do + category=${word} + break; + done + port=${workstr#${category}_} + echo ${portsdir}/$category/$port +} + +identical_options() { + local origin=$(catport $1) + local selected_pristine=$(/usr/bin/make -C ${origin} \ + -V SELECTED_OPTIONS PORT_DBDIR=/dev/null) + local selected_now=$(/usr/bin/make -C ${origin} -V SELECTED_OPTIONS) + local deselected_pristine=$(/usr/bin/make -C ${origin} \ + -V DESELECTED_OPTIONS PORT_DBDIR=/dev/null) + local deselected_now=$(/usr/bin/make -C ${origin} -V DESELECTED_OPTIONS) + if [ "${selected_pristine}" = "${selected_now}" -a \ + "${deselected_pristine}" = "${deselected_now}" ]; then + echo $1 + fi; +} + +optdirs=$(/usr/bin/find -s "${db_dir}" -type d -depth 1) + +for dossier in ${optdirs}; do + identical_options ${dossier} +done |