Make dispatch-conf play nice with symlinks for bug #129515. Thanks to Patrick McLean...
authorZac Medico <zmedico@gentoo.org>
Tue, 11 Apr 2006 08:58:58 +0000 (08:58 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 11 Apr 2006 08:58:58 +0000 (08:58 -0000)
svn path=/main/trunk/; revision=3129

bin/dispatch-conf

index 586b98759f8e4dfd96c2c5e3b49687c9e427caa7..4df6306f71ee36aa37b3bd99d6f39237fc1a1f9c 100755 (executable)
@@ -18,8 +18,16 @@ import os, shutil, sys, string, re, commands, atexit
 sys.path = ["/usr/lib/portage/pym"]+sys.path
 
 import portage, dispatch_conf
+import portage_exec
+
+# `readlink -f` is not supported on all systems, so it's necessary to test for
+# the alternative "realpath" program.
+FIND_EXTANT_CONFIGS  = "find -L %s/ -iname '._cfg????_*' -exec realpath '{}' ';' | uniq | sed -e 's://:/:g'"
+realpath_binary = portage_exec.find_binary("realpath")
+if realpath_binary is None:
+    FIND_EXTANT_CONFIGS = FIND_EXTANT_CONFIGS.replace("realpath", "readlink -q -f")
+del realpath_binary
 
-FIND_EXTANT_CONFIGS  = "find %s/ -iname '._cfg????_*' | sed -e 's://:/:g'"
 DIFF_CONTENTS        = 'diff -Nu %s %s'
 DIFF_CVS_INTERP      = 'diff -Nu %s %s | grep "^[+-][^+-]" | grep -v "# .Header:.*"'
 DIFF_WSCOMMENTS      = 'diff -Nu %s %s | grep "^[+-][^+-]" | grep -v "^[-+]#" | grep -v "^[-+][:space:]*$"'