aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorJohn Marino <marino@FreeBSD.org>2016-02-14 09:59:08 +0000
committerJohn Marino <marino@FreeBSD.org>2016-02-14 09:59:08 +0000
commit75229eb39fe6c2f7940a5021e5ada83514768f76 (patch)
treeb410f9c5277b3a7e57566c9c22488d9ba73e0966 /Tools
parent4e70493b380747ab71eb30d20b2f24c0f95f0219 (diff)
downloadports-75229eb39fe6c2f7940a5021e5ada83514768f76.tar.gz
ports-75229eb39fe6c2f7940a5021e5ada83514768f76.zip
Notes
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/scripts/redundant-opt-files.sh51
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