Make --info detect more /etc/*-release files as suggested by grobian.
authorZac Medico <zmedico@gentoo.org>
Wed, 22 Aug 2007 04:50:54 +0000 (04:50 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 22 Aug 2007 04:50:54 +0000 (04:50 -0000)
svn path=/main/trunk/; revision=7659

pym/emerge/__init__.py

index f220a09c612277bddd87a899182be80ec7e233b5..8e0987a3221ab1d6edc091ca9c26cb262434c01b 100644 (file)
@@ -5137,17 +5137,25 @@ def action_info(settings, trees, myopts, myfiles):
        print header_width * "="
        print "System uname: "+unameout
 
-       files = ('gentoo-release', 'redhat-release', 'lsb-release')
-       os_found = False
-       for f in files:
-               path = os.path.join(settings["ROOT"], '/etc/', f)
-               if os.path.exists(path):
-                       lines = open(path).readlines()
-                       map(writemsg, lines)
-                       os_found = True
-                       break
-       if not os_found:
+       release_files = set(['gentoo-release', 'centos-release', 'debian_version',
+               'fedora-release', 'lsb-release', 'redhat-release', 'SuSE-release',
+               'yellowdog-release'])
+       etc_dir = os.path.join(settings["ROOT"], 'etc')
+       try:
+               dir_list = os.listdir(etc_dir)
+       except OSError:
+               dir_list = []
+       release_files = release_files.intersection(dir_list)
+       if not release_files:
                print "Unknown Host Operating System"
+       else:
+               my_release_file = None
+               if 'gentoo-release' in release_files:
+                       my_release_file = 'gentoo-release'
+               else:
+                       my_release_file = release_files.pop()
+               lines = portage.util.grablines(os.path.join(etc_dir, my_release_file))
+               map(portage.writemsg_stdout, lines)
 
        lastSync = portage.grabfile(os.path.join(
                settings["PORTDIR"], "metadata", "timestamp.chk"))