#!/bin/sh
PORTSDIR=/usr/ports

EMPTYPORTDBDIR=`mktemp -d /tmp/emptyXXXXXXX`
OPTIONDEFAULTS=`mktemp /tmp/optiondefaultsXXXXXX`
OPTIONSETTINGS=`mktemp /tmp/optionsettingsXXXXXX`
DEFAULTS=`mktemp /tmp/defaultsXXXXXX`
SETTINGS=`mktemp /tmp/settingsXXXXXX`
DESCR=`mktemp /tmp/descrXXXXXX`

FILTEREXP="/^===> Use 'make config'/d;s/The following configuration options are available for//;s/^ *//"
for port in `pkg info -ao | awk '{print $2;}' | sort`; do
  if [ -d ${PORTSDIR}/${port} ]; then
	(cd ${PORTSDIR}/${port} &&					\
         make PORT_DBDIR=${EMPTYPORTDIR} showconfig |			\
         sed -e "${FILTEREXP}" >> ${OPTIONDEFAULTS})
	(cd ${PORTSDIR}/${port} &&					\
	 make showconfig |						\
	 sed -e "${FILTEREXP}" >> ${OPTIONSETTINGS})
  fi
done
FILTEREXP2='s/^===.*/                /;s/^([^[:space:]]+=[^[:space:]]*):[[:space:]].*/\1                /;s/(................).*/\1/'
sed -E -e "${FILTEREXP2}" < ${OPTIONDEFAULTS} > ${DEFAULTS}
sed -E -e "${FILTEREXP2}" < ${OPTIONSETTINGS} > ${SETTINGS}
sed -E -e 's/^[^[:space:]]+=[^[:space:]]+:[[:space:]]*//' < ${OPTIONDEFAULTS} > ${DESCR}
echo "Default        	Current Setting"
paste ${DEFAULTS} ${SETTINGS} ${DESCR} | awk '{if ($1 != $2) print $0;}'
rmdir ${EMPTYPORTDBDIR}
rm ${OPTIONDEFAULTS}
rm ${OPTIONSETTINGS}
rm ${DEFAULTS}
rm ${SETTINGS}
rm ${DESCR}
