diff options
author | DjMelik <melik@archlinux.us> | 2010-08-23 12:46:09 -0700 |
---|---|---|
committer | DjMelik <melik@archlinux.us> | 2010-08-23 12:46:09 -0700 |
commit | 0c9128fff4b69e79b52ec1d2b049558184edca88 (patch) | |
tree | 978defab7a70a670e67dd38f629ed52a9339c051 | |
parent | 2cbf832471d7e43ea51f048ea9f069b01c1dae35 (diff) |
added support for Ubuntu
-rw-r--r-- | archey | 99 |
1 files changed, 75 insertions, 24 deletions
@@ -1,6 +1,6 @@ #!/usr/bin/env python # -# archey [version 0.2.3] +# archey [version 0.2.4] # # Maintained by Melik Manukyan <melik@archlinux.us> # Distributed under the terms of the GNU General Public License v3. @@ -9,7 +9,7 @@ # System information tool for Archlinux written in python. # Import libraries -import os, sys, subprocess, optparse, re +import os, sys, subprocess, optparse, re, linecache from subprocess import Popen, PIPE from optparse import OptionParser from getpass import getuser @@ -17,7 +17,7 @@ from time import ctime, sleep # Display [Comment/Uncomment to Enable/Disable information.] display = [ - 'os', # Display Operating System + 'distro', # Display Distribution 'hostname', # Display Machine Hostname 'kernel', # Display Kernel Version 'uptime', # Display System Uptime @@ -36,20 +36,12 @@ result = [] # Options if __name__=='__main__': - parser = OptionParser(usage='%prog [-c COLOR] [-s, --screenshot]', description='To customize the info displayed on archey, edit "/usr/bin/archey" directly and look for the display array. Note: Archey can only allow up to 15 fields.', version="%prog 0.2.3") - parser.add_option('-c', - action='store', default='blue', type='choice', dest='color', choices=('black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'), help='choose a color: black, red, green, yellow, blue, magenta, cyan, white [Default: blue]') + parser = OptionParser(usage='%prog [-s, --screenshot]', description='Archey is a system information tool written in Python.', version="%prog 0.2.4") parser.add_option('-s', '--screenshot', action='store_true', dest='screenshot', help='take a screenshot') (options, args) = parser.parse_args() -# Define colors -colorscheme = '%s' % options.color -colors = {'black': '0', 'red': '1', 'green': '2', 'yellow': '3', 'blue': '4', 'magenta': '5', 'cyan': '6', 'white': '7'} -for key in colors.keys(): - if key in colorscheme: colorcode = colors[key] -color = '\x1b[1;3%sm' % colorcode -color2 = '\x1b[0;3%sm' % colorcode +# Clear clear = '\x1b[0m' # Define processes for identifying Desktop Environmentss, Window Managers, Shells. @@ -102,7 +94,11 @@ p1 = None # Print coloured key with normal value. def output(key, value): - output = '%s%s:%s %s' % (color, key, clear, value) + if Popen(['grep', '-i', 'ubuntu', '/etc/lsb-release'], stdout=PIPE): + ucolor = '\x1b[1;31m' + output ='%s%s:%s %s' % (ucolor, key, clear, value) + if os.path.exists('/etc/arch-release'): + output = '%s%s:%s %s' % (color, key, clear, value) result.append(output) # RAM Function @@ -126,10 +122,15 @@ def screenshot(): subprocess.check_call(['scrot']) # Operating System Function -def os_display(): - arch = Popen(['uname', '-m'], stdout=PIPE).communicate()[0].rstrip('\n') - os = 'Arch Linux %s' % (arch) - output('OS', os) +def distro_display(): + arch = Popen(['uname', '-m'], stdout=PIPE).communicate()[0].rstrip('\n' + ) + urelease = linecache.getline('/etc/lsb-release', 2).rstrip('\n').split('=')[1].title() + if Popen(['grep', '-i', 'ubuntu', '/etc/lsb-release'], stdout=PIPE).communicate()[0].rstrip('\n'): + distro = 'Ubuntu %s %s' % (urelease, arch) + if os.path.exists('/etc/arch-release'): + distro = 'Arch Linux %s' % arch + output('OS', distro) # Kernel Function def kernel_display(): @@ -191,10 +192,17 @@ def term_display(): # Packages Function def packages_display(): - p1 = Popen(['pacman', '-Q'], stdout=PIPE) - p2 = Popen(['wc', '-l'], stdin=p1.stdout, stdout=PIPE) - packages = p2.communicate()[0].rstrip('\n') - output ('Packages', packages) + if Popen(['grep', '-i', 'ubuntu', '/etc/lsb-release'], stdout=PIPE): + p1 = Popen(['dpkg', '--get-selections'], stdout=PIPE) + p2 = Popen(['grep', '-v', 'deinstall'], stdin=p1.stdout, stdout=PIPE) + p3 = Popen(['wc', '-l'], stdin=p2.stdout, stdout=PIPE) + packages = p3.communicate()[0].rstrip('\n') + output ('Packages', packages) + if os.path.exists('/etc/arch-release'): + p1 = Popen(['pacman', '-Q'], stdout=PIPE) + p2 = Popen(['wc', '-l'], stdin=p1.stdout, stdout=PIPE) + packages = p2.communicate()[0].rstrip('\n') + output ('Packages', packages) # File System Function def fs_display(): @@ -225,7 +233,50 @@ for x in display: result.extend(['']*(20 - len(display))) ###### Result ####### -print """%s + +## Ubuntu +# Colors +ucolor = '\x1b[1;33m' +ucolor2 = '\x1b[1;31m' +ucolor3 = '\x1b[0;31m' + +if Popen(['grep', '-i', 'ubuntu', '/etc/lsb-release'], stdout=PIPE): + print """ +%s ++++++ %s +%s ++++++++ %s +%s ++++++++++ %s++++++++ %s +%s ++++++++++++ %s++++++++ %s +%s ++ %s++++++++++++ %s++++++ %s +%s +++++ %s++++++++++++ %s**** %s +%s +++++++ %s+++++++++++++++++++ %s +%s +++++++++ %s+++++++++++ %s +%s ++++++++++ %s++++++++++ %s +%s ++++++++ %s++++++++++ %s +%s ++++++ %s++++++ %s++++++++++ %s +%s ++++++++ %s+++++ %s+++++++++ %s +%s +++++++++ %s++++ %s +%s ++++++++ %s+++++ %s+++++++++ %s +%s ++++++ %s++++++ %s++++++++++ %s +%s ++++++++ %s++++++++++ %s +%s +++++++++ %s++++++++++ %s +%s +++++++++ %s++++++++++++ %s +%s +++++++ %s+++++++++++++++++++ +%s +++++ %s++++++++++++ %s,,,, +%s ++ %s++++++++++++ %s++++++ +%s ++++++++++++ %s++++++++ +%s ++++++++++ %s++++++++ +%s ++++++++ +%s ++++++ +%s """ % (ucolor3, result[0], ucolor3, result[1], ucolor2, ucolor3, result[2], ucolor2, ucolor3, result[3], ucolor, ucolor2, ucolor3, result[4], ucolor, ucolor2, ucolor3, result[5], ucolor, ucolor2, result[6], ucolor, ucolor2, result[7], ucolor, ucolor2, result[8], ucolor, ucolor2, result[9], ucolor2, ucolor, ucolor2, result[10], ucolor2, ucolor, ucolor2, result[11], ucolor2, ucolor, result[12], ucolor2, ucolor, ucolor3, result[13], ucolor2, ucolor, ucolor3, result[14], ucolor, ucolor3, result[15], ucolor, ucolor3, result[16], ucolor, ucolor3, ucolor, ucolor, ucolor3, ucolor, ucolor3, ucolor, ucolor, ucolor3, ucolor, ucolor3, ucolor, ucolor3, ucolor, ucolor, ucolor, clear) + + +## Arch Linux +# Colors +acolor = '\x1b[1;34m' +acolor2 = '\x1b[0;34m' + +if os.path.exists('/etc/arch-release'): + print """%s %s + %s %s # %s %s ### %s @@ -244,7 +295,7 @@ print """%s %s ;#### ####; %s %s ##' '## %s %s #' `# %s -%s """ % (color, color, result[0], color, result[1], color, result[2], color, result[3], color, result[4], color, result[5], color, result[6], color, result[7], color, color2, color, result[8], color, color2, color, result[9], color, color2, result[10], color2, result[11], color2, result[12], color2, result[13], color2, result[14], color2, result[15], color2, result[16], color2, result[17], clear) +%s """ % (acolor, acolor, result[0], acolor, result[1], acolor, result[2], acolor, result[3], acolor, result[4], acolor, result[5], acolor, result[6], acolor, result[7], acolor, acolor2, acolor, result[8], acolor, acolor2, acolor, result[9], acolor, acolor2, result[10], acolor2, result[11], acolor2, result[12], acolor2, result[13], acolor2, result[14], acolor2, result[15], acolor2, result[16], acolor2, result[17], clear) if screen == 'True': screenshot() |