This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author nkour
Recipients
Date 2005-04-10.16:44:28
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
platform.release() (which is supposed to return the
Name of Windows) also does not work as it should in
some versions of windows I tried (xp pro sp1). Luckily
to print more than Windows (eg. print Windows XP or
Windows 2000 etc) you can have a look at this
http://www.brunningonline.net/simon/blog/archives/001168.html
of Simon Brunning

also  only debian, mdk and redhat is scanned for
GNU/Linux ?? why even bother then?

I think that PSL is good but this module is has hell of
limitations. At least dont' make anyone write this:

import os

distro_info = {
  'Arch Linux': '/etc/arch-release',\
  'Aurox Linux': '/etc/aurox-release',\
  'Conectiva Linux': '/etc/conectiva-release',\
  'Debian GNU/Linux': '/etc/debian_release',\
  'Debian GNU/Linux': '/etc/debian_version',\
  'Fedora Linux': '/etc/fedora-release',\
  'Gentoo Linux': '/etc/gentoo-release',\
  'Mandrake Linux': '/etc/mandrake-release',\
  'Slackware Linux': '/etc/slackware-release',\
  'Slackware Linux': '/etc/slackware-version',\
  'Solaris/Sparc': '/etc/release',\
  'Sun JDS': '/etc/sun-release',\
  'Novell SUSE Linux': '/etc/SuSE-release',\
  'PLD Linux': '/etc/pld-release',\
  'SUSE Linux': '/etc/SuSE-release',\
  'Yellow Dog Linux': '/etc/yellowdog-release',\
  # many distros use the /etc/redhat-release for
compatibility
  # so Redhat is the last
  'Redhat Linux': '/etc/redhat-release'\
}

def get_os_info():
  if os.name =='nt':
    win_version = {
			(1, 4, 0): "95",\
			(1, 4, 10): "98",\
			(1, 4, 90): "ME",\
			(2, 4, 0): "NT",\
			(2, 5, 0): "2000",\
			(2, 5, 1): "XP"
		}[os.sys.getwindowsversion()[3],
os.sys.getwindowsversion()[0],
os.sys.getwindowsversion()[1]]
		return 'Windows' + ' ' + win_version
  elif os.name =='posix':
    executable = 'lsb_release'
    params = ' --id --codename --release --short'
    for path in os.environ['PATH'].split(':'):
      full_path_to_executable = os.path.join(path,
executable)
      if os.path.exists(full_path_to_executable):
        command = executable + params
        child_stdin, child_stdout = os.popen2(command)
        output = child_stdout.readline().strip()
        child_stdout.close()
        child_stdin.close()
        return output
    # lsb_release executable not available, so parse files
    for distro in distro_info:
      path_to_file = distro_info[distro]
      if os.path.exists(path_to_file):
        file = open(path_to_file)
        text = file.read().strip()
        file.close()
        if path_to_file.endswith('version'):
          text = distro + ' ' + text
        return text

print get_os_info()

Thank you
History
Date User Action Args
2008-01-20 09:57:45adminlinkissue1180267 messages
2008-01-20 09:57:45admincreate