[yum-cvs] yum-utils/plugins/merge-conf merge-conf.py,1.1,1.2

Tim Lauridsen timlau at linux.duke.edu
Sun Jun 17 07:03:45 UTC 2007


Update of /home/groups/yum/cvs/yum-utils/plugins/merge-conf
In directory login1.linux.duke.edu:/tmp/cvs-serv5297/plugins/merge-conf

Modified Files:
	merge-conf.py 
Log Message:
Patch to detech vimdiff by Aurelien Bompard

Index: merge-conf.py
===================================================================
RCS file: /home/groups/yum/cvs/yum-utils/plugins/merge-conf/merge-conf.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- merge-conf.py	12 Apr 2007 13:11:41 -0000	1.1
+++ merge-conf.py	17 Jun 2007 07:03:42 -0000	1.2
@@ -34,6 +34,11 @@
                       help='Merge configuration changes after installation')
 
 def posttrans_hook(conduit):
+    has_vimdiff = False
+    for d in os.getenv("PATH", "").split(":"):
+        if os.path.exists(os.path.join(d, "vimdiff")):
+            has_vimdiff = True
+            break
     ts = conduit.getTsInfo()
     for tsmem in ts.getMembers():
         rpmdb = conduit.getRpmDB()
@@ -57,11 +62,11 @@
             for file, mode, flags in filetuple:
                 if flags & RPMFILE_CONFIG:
                     if flags & RPMFILE_NOREPLACE:
-                        mergeConfFiles(tsmem.po.name, file, True, conduit)
+                        mergeConfFiles(tsmem.po.name, file, True, conduit, has_vimdiff)
                     else:
-                        mergeConfFiles(tsmem.po.name, file, False, conduit)
+                        mergeConfFiles(tsmem.po.name, file, False, conduit, has_vimdiff)
 
-def mergeConfFiles(pkg, file, noreplace, conduit):
+def mergeConfFiles(pkg, file, noreplace, conduit, has_vimdiff):
     if noreplace:
         local_file = file
         pkg_file = "%s.rpmnew" % file
@@ -98,7 +103,8 @@
             print " - install the package's version (i)"
         else:
             print " - keep your version (n)"
-        print " - merge interactively with vim (v)"
+        if has_vimdiff:
+            print " - merge interactively with vim (v)"
         print " - background this process and examine manually (z)"
         sys.stdout.write("Your answer ? ")
         answer = sys.stdin.readline().strip()
@@ -124,7 +130,7 @@
             os.system(os.getenv("SHELL", "bash"))
         elif answer == "q":
             print "Choosing RPM's default action."
-        elif answer == "v":
+        elif answer == "v" and has_vimdiff:
             os.system("""vimdiff '%s' '%s'""" % (final_file, other_file))
             break
         else:




More information about the Yum-cvs-commits mailing list