From 1e68875612c2a00e2c66b186e09485617b57131f Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 11 Apr 2006 09:29:34 +0000 Subject: Make etc-update play nice with symlinks for bug #129515. Thanks to Patrick McLean for the initial patch. svn path=/main/trunk/; revision=3130 --- bin/etc-update | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/etc-update b/bin/etc-update index d2946c3a0..234a6bd34 100755 --- a/bin/etc-update +++ b/bin/etc-update @@ -40,11 +40,16 @@ function scan() { exit 1 fi + # `readlink -f` is not supported on all systems, so it's necessary to test + # for the alternative "realpath" program. + local realpath_cmd="$(type -p "realpath")" + [ -z "${realpath_cmd}" ] && realpath_cmd="readlink -q -f" + for path in ${CONFIG_PROTECT} ; do [ ! -d ${path} ] && continue ofile="" - for file in `find ${path}/ -iname "._cfg????_*" | + for file in `find -L ${path}/ -iname "._cfg????_*" -exec ${realpath_cmd} '{}' ';' | uniq | sed -e "s:\(^.*/\)\(\._cfg[0-9]*_\)\(.*$\):\1\2\3\%\2\%\3:" | sort -t'%' -k3 -k2 | LANG=POSIX LC_ALL=POSIX cut -f1 -d'%'`; do rpath=`echo "${file/\/\///}" | sed -e "s:/[^/]*$::"` -- cgit v1.2.3-1-g7c22