Same problem here but cause by Screen 0 line.
So I've changed 

if xorgconf_indev == True :
        finalnode = xorgline.split('"')[1]
        if xorgline.find('Identifier') != -1 :
                xorgconf_id = finalnode
        if xorgline.find('Driver') != -1 :
                xorgconf_dev = finalnode

to 
if xorgconf_indev == True :
        if xorgline.find('Identifier') != -1 :
                xorgconf_id = xorgline.split('"')[1]
        if xorgline.find('Driver') != -1 :
                xorgconf_dev = xorgline.split('"')[1]

Then another problem with gnome version probably cause by French
Language so :

[dontcare, gnomeinfo, dontcareeither] = os.popen3('gnome-about
--gnome-version')

to 

[dontcare, gnomeinfo, dontcareeither] = os.popen3('LANG=C gnome-about
--gnome-version')

Le vendredi 14 décembre 2007 à 12:01 +0100, Denis Washington a écrit :
> On Fri, 2007-12-14 at 05:00 +0000, Ted Gould wrote:
> > It needs to be cleaned up, but I'm currently more worried about
> > correctness.  I don't need posts from everyone unless the values come
> > out with something that is incorrect.  If everything is right don't
> > worry about it.
> 
> If I run the script on my machine, I get this:
> 
> Processor:  AMD Athlon(tm) XP 2200+
> HD size:  61492838400 bytes
> Network:  VIA Technologies, Inc. :  VT6102 [Rhine-II]
> Traceback (most recent call last):
>   File "test.py", line 115, in <module>
>     main()
>   File "test.py", line 56, in main
>     finalnode = xorgline.split('"')[1]
> IndexError: list index out of range
> 
> This is because you don't seem to be skipping empty lines for xorg.conf,
> which I have in my "Device" section. I fixed it like this in your
> script:
> 
> if len(xorgline) == 0:
>       continue
> 
> Also, note that Python strings are immutable: the call to strip()
> returns the stripped version of the string, but doesn't touch the
> original object. So:
> 
> xorgline.strip()
> 
> has to be:
> 
> xorgline = xorgline.strip()
> 
> I attached the script with the told changes to this mail. Besides that,
> all information was gathered correctly for me.
> 
> Cheers,
> Denis
#!/usr/bin/env python

import dbus
import os

def main () :
	system_bus = dbus.SystemBus()

	halmanager = system_bus.get_object('org.freedesktop.Hal',
										'/org/freedesktop/Hal/Manager')
	processors =  halmanager.FindDeviceByCapability('processor')

	# print (processors)
	for processor in processors :
	# print processor
		proc  = system_bus.get_object('org.freedesktop.Hal', processor)
		print 'Processor: ', proc.GetPropertyString('info.product')

	rootfses = halmanager.FindDeviceStringMatch('volume.mount_point', '/')
	if len(rootfses) != 1 :
		print 'Hmm, more than one root filesystem?'
	else:
		rootfs = system_bus.get_object('org.freedesktop.Hal', rootfses[0])
		rootfshd = system_bus.get_object('org.freedesktop.Hal', rootfs.GetPropertyString('info.parent'))
		print 'HD size: ', rootfshd.GetProperty('storage.size'), 'bytes'

	networkifaces =  halmanager.FindDeviceByCapability('net')
	networkcards = {}
	for networkiface in networkifaces :
		netiface = system_bus.get_object('org.freedesktop.Hal', networkiface)
		networkcards[netiface.GetPropertyString('info.parent')] = 1
	for networkcard in networkcards.keys() :
		netcard = system_bus.get_object('org.freedesktop.Hal', networkcard)
		print 'Network: ', netcard.GetProperty('info.vendor'), ': ', netcard.GetProperty('info.product')

	xorgconf = open('/etc/X11/xorg.conf')
	xorgconf_indev = False
	xorgconf_id = ""
	xorgconf_dev = ""
	videocards = {}
	for xorgline in xorgconf:
		xorgline = xorgline.strip()

		if len(xorgline) == 0:
			continue
		if xorgline.startswith('EndSection'):
			xorgconf_indev = False
			if xorgconf_id != "" and xorgconf_dev != "" :
				videocards[xorgconf_id] = xorgconf_dev
			xorgconf_id = ""
			xorgconf_dev = ""
		if xorgline.startswith('Section "Device"'):
			xorgconf_indev = True

		if xorgconf_indev == True :
			if xorgline.find('Identifier') != -1 :
				xorgconf_id = xorgline.split('"')[1]
			if xorgline.find('Driver') != -1 :
				xorgconf_dev = xorgline.split('"')[1]
	for videocard in videocards.keys() :
		print 'Video: ', videocard, ' (', videocards[videocard], ')'
	xorgconf.close()

	lsb_release = open('/etc/lsb-release')
	lsb_release_vals = {}
	distrib = ""
	for lsb_release_line in lsb_release :
		lsb_release_line.strip()
		lsb_split = lsb_release_line.split('=')
		if len(lsb_split) == 2 :
			lsb_release_vals[lsb_split[0]] = lsb_split[1]
	lsb_release.close()
	if lsb_release_vals.has_key('DISTRIB_ID') :
		distrib = lsb_release_vals['DISTRIB_ID'].strip()
		if lsb_release_vals.has_key('DISTRIB_RELEASE') :
			distrib += " "
			distrib += lsb_release_vals["DISTRIB_RELEASE"].strip()
		if lsb_release_vals.has_key('DISTRIB_CODENAME') :
			distrib += " ("
			distrib += lsb_release_vals["DISTRIB_CODENAME"].strip()
			distrib += ")"
	if distrib != "":
		print "Distribution: ", distrib

	uname = os.popen('uname -r')
	print "Linux Kernel: ", uname.read().strip();
	uname.close()

	meminfo = open('/proc/meminfo')
	for memline in meminfo :
		if memline.startswith('MemTotal:') :
			split = memline.split(' ')
			print "RAM: ", split[-2].strip(), split[-1].strip()
	meminfo.close()

	gnomever = ""
	try:
		[dontcare, gnomeinfo, dontcareeither] = os.popen3('LANG=C gnome-about --gnome-version')
		for gnomeline in gnomeinfo :
			if gnomeline.startswith('Version:') :
				gnomever = gnomeline.split(':')[-1].strip()
		dontcare.close()
		gnomeinfo.close()
		dontcareeither.close()
	except:
		gnomever = ""

	if gnomever != "" :
		print "GNOME: ", gnomever
	else:
		print "GNOME:  <undefined>"

if __name__ == '__main__':
	main()

Attachment: signature.asc
Description: Ceci est une partie de message numériquement signée

-- 
ubuntu-desktop mailing list
ubuntu-desktop@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-desktop

Reply via email to