mirror of
https://github.com/HorlogeSkynet/archey4
synced 2025-04-24 04:00:12 +02:00
moved archey.new > archey
This commit is contained in:
parent
eda92485a3
commit
b8624558a9
645
archey
Executable file → Normal file
645
archey
Executable file → Normal file
@ -1,14 +1,15 @@
|
||||
#!/usr/bin/env python2
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# Archey [version 0.2.8]
|
||||
# Archey [version 0.3.0]
|
||||
#
|
||||
# Archey is a system information tool written in Python.
|
||||
# Archey is a simple system information tool written in Python.
|
||||
#
|
||||
# Copyright 2010 Melik Manukyan <melik@archlinux.us>
|
||||
#
|
||||
# Maintained by Melik Manukyan <melik@archlinux.us>
|
||||
# ASCII art by Brett Bohnenkamper <kittykatt@silverirc.com>
|
||||
# Changes Jerome Launay <jerome@projet-libre.org>
|
||||
# Fedora support by YeOK <yeok@henpen.org>
|
||||
|
||||
#
|
||||
# Distributed under the terms of the GNU General Public License v3.
|
||||
# See http://www.gnu.org/licenses/gpl.txt for the full license text.
|
||||
|
||||
@ -19,423 +20,237 @@ from optparse import OptionParser
|
||||
from getpass import getuser
|
||||
from time import ctime, sleep
|
||||
|
||||
# Display [Comment/Uncomment to Enable/Disable information.]
|
||||
display = [
|
||||
'user', # Display Username
|
||||
'hostname', # Display Machine Hostname
|
||||
'distro', # Display Distribution
|
||||
'kernel', # Display Kernel Version
|
||||
'uptime', # Display System Uptime
|
||||
'wm', # Display Window Manager
|
||||
'de', # Display Desktop Environment
|
||||
'sh', # Display Current Shell
|
||||
'term', # Display Current Terminal
|
||||
'packages', # Display Number of Packages Installed
|
||||
'cpu', # Display CPU Model
|
||||
'ram', # Display RAM Usage
|
||||
'disk' # Display Disk Usage
|
||||
]
|
||||
#---------------Output---------------#
|
||||
|
||||
# Array containing Values
|
||||
result = []
|
||||
|
||||
# Options
|
||||
if __name__=='__main__':
|
||||
parser = OptionParser(usage='%prog [-s, --screenshot]', description='Archey is a system information tool written in Python.', version="%prog 0.2.8")
|
||||
parser.add_option('-s', '--screenshot',
|
||||
action='store_true', dest='screenshot', help='take a screenshot')
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
# Define processes for identifying Desktop Environmentss, Window Managers, Shells.
|
||||
de_dict = {
|
||||
'gnome-session': 'GNOME',
|
||||
'ksmserver': 'KDE',
|
||||
'xfce4-session': 'Xfce'}
|
||||
|
||||
wm_dict = {
|
||||
'awesome': 'Awesome',
|
||||
'beryl': 'Beryl',
|
||||
'blackbox': 'Blackbox',
|
||||
'compiz': 'Compiz',
|
||||
'dwm': 'DWM',
|
||||
'enlightenment': 'Enlightenment',
|
||||
'fluxbox': 'Fluxbox',
|
||||
'fvwm': 'FVWM',
|
||||
'i3': 'i3',
|
||||
'icewm': 'IceWM',
|
||||
'kwin': 'KWin',
|
||||
'metacity': 'Metacity',
|
||||
'musca': 'Musca',
|
||||
'openbox': 'Openbox',
|
||||
'pekwm': 'PekWM',
|
||||
'ratpoison': 'ratpoison',
|
||||
'scrotwm': 'ScrotWM',
|
||||
'wmaker': 'Window Maker',
|
||||
'wmfs': 'Wmfs',
|
||||
'wmii': 'wmii',
|
||||
'xfwm4': 'Xfwm',
|
||||
'xmonad': 'xmonad'}
|
||||
|
||||
sh_dict = {
|
||||
'zsh': 'Zsh',
|
||||
'bash': 'Bash',
|
||||
'dash': 'Dash',
|
||||
'fish': 'Fish',
|
||||
'ksh': 'Ksh',
|
||||
'csh': 'Csh',
|
||||
'jsh': 'Jsh',
|
||||
'tcsh': 'Tcsh'}
|
||||
|
||||
# Define Colour Scheme
|
||||
|
||||
clear = '\x1b[0m'
|
||||
blackB = '\x1b[0;30m'
|
||||
blackB = '\x1b[1;30m'
|
||||
redN = '\x1b[0;31m'
|
||||
redB = '\x1b[1;31m'
|
||||
greenN = '\x1b[0;32m'
|
||||
greenB = '\x1b[1;32m'
|
||||
yellowN = '\x1b[0;33m'
|
||||
yellowB = '\x1b[1;33m'
|
||||
blueN = '\x1b[0;34m'
|
||||
blueB = '\x1b[1;34m'
|
||||
magentaN = '\x1b[0;35m'
|
||||
magentaB = '\x1b[1;35m'
|
||||
cyanN = '\x1b[0;36m'
|
||||
cyanB = '\x1b[1;36m'
|
||||
whiteN = '\x1b[0;37m'
|
||||
whiteB = '\x1b[1;37m'
|
||||
|
||||
# Find running processes.
|
||||
def xmonadfix(str):
|
||||
if re.compile("xmonad").match(str): return "xmonad"
|
||||
return str
|
||||
p1 = Popen(['ps', '-u', getuser()], stdout=PIPE).communicate()[0].split('\n')
|
||||
processes = map(xmonadfix, [process.split()[3] for process in p1 if process])
|
||||
p1 = None
|
||||
|
||||
# Find Distro.
|
||||
DetectDistro = Popen(['lsb_release', '-i'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
|
||||
|
||||
# Print coloured key with normal value.
|
||||
def output(key, value):
|
||||
if DetectDistro == 'Ubuntu':
|
||||
output ='%s%s:%s %s' % (redB, key, clear, value)
|
||||
if DetectDistro == 'Arch':
|
||||
output = '%s%s:%s %s' % (blueB, key, clear, value)
|
||||
if DetectDistro == 'Debian':
|
||||
output = '%s%s:%s %s' % (redB, key, clear, value)
|
||||
if DetectDistro == 'Fedora':
|
||||
output = '%s%s:%s %s' % (blueB, key, clear, value)
|
||||
if DetectDistro == 'CrunchBang':
|
||||
output = '%s%s:%s %s' % (whiteN, key, clear, value)
|
||||
if DetectDistro == 'LinuxMint':
|
||||
output = '%s%s:%s %s' % (greenB, key, clear, value)
|
||||
result.append(output)
|
||||
|
||||
# RAM Function.
|
||||
def ram_display():
|
||||
raminfo = Popen(['free', '-m'], stdout=PIPE).communicate()[0].split('\n')
|
||||
ram = ''.join(filter(re.compile('M').search, raminfo)).split()
|
||||
used = int(ram[2]) - int(ram[5]) - int(ram[6])
|
||||
usedpercent = ((float(used) / float(ram[1])) * 100)
|
||||
if usedpercent <= 33:
|
||||
ramdisplay = '%s%s MB %s/ %s MB' % (greenB, used, clear, ram[1])
|
||||
output('RAM', ramdisplay)
|
||||
if usedpercent > 33 and usedpercent < 67:
|
||||
ramdisplay = '%s%s MB %s/ %s MB' % (yellowB, used, clear, ram[1])
|
||||
output('RAM', ramdisplay)
|
||||
if usedpercent >= 67:
|
||||
ramdisplay = '%s%s MB %s/ %s MB' % (redB, used, clear, ram[1])
|
||||
output('RAM', ramdisplay)
|
||||
|
||||
# Screenshot Function.
|
||||
screen = '%s' % options.screenshot
|
||||
def screenshot():
|
||||
print 'Taking shot in',
|
||||
list = range(1,6)
|
||||
list.reverse()
|
||||
for x in list:
|
||||
print '%s..' % x,
|
||||
sys.stdout.flush()
|
||||
sleep(1)
|
||||
print 'Say Cheeze!'
|
||||
subprocess.check_call(['scrot'])
|
||||
|
||||
# Operating System Function.
|
||||
def distro_display():
|
||||
arch = Popen(['uname', '-m'], stdout=PIPE).communicate()[0].rstrip('\n')
|
||||
if DetectDistro == 'Debian':
|
||||
release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
|
||||
distro = 'Debian %s %s' % (release, arch)
|
||||
if DetectDistro == 'Ubuntu':
|
||||
release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
|
||||
distro = 'Ubuntu %s %s' % (release, arch)
|
||||
if DetectDistro == 'Arch':
|
||||
distro = 'Arch Linux %s' % arch
|
||||
if DetectDistro == 'Fedora':
|
||||
release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
|
||||
distro = 'Fedora %s %s' % (release, arch)
|
||||
if DetectDistro == 'CrunchBang':
|
||||
release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
|
||||
if DetectDistro == 'LinuxMint':
|
||||
release = Popen(['lsb_release', '-r'], stdout=PIPE).communicate()[0].split(':')[1].lstrip('\t').rstrip('\n')
|
||||
distro = 'Mint %s %s' % (release, arch)
|
||||
output('OS', distro)
|
||||
|
||||
# Kernel Function.
|
||||
def kernel_display():
|
||||
kernel = Popen(['uname', '-r'], stdout=PIPE).communicate()[0].rstrip('\n')
|
||||
output ('Kernel', kernel)
|
||||
|
||||
def user_display():
|
||||
username= os.getenv('USER')
|
||||
output ('User', username)
|
||||
|
||||
# Hostname Function.
|
||||
def hostname_display():
|
||||
hostname = Popen(['uname', '-n'], stdout=PIPE).communicate()[0].rstrip('\n')
|
||||
output('Hostname', hostname)
|
||||
|
||||
# CPU Function.
|
||||
def cpu_display():
|
||||
file = open('/proc/cpuinfo').readlines()
|
||||
cpuinfo = re.sub(' +', ' ', file[4].replace('model name\t: ', '').rstrip('\n'))
|
||||
output ('CPU', cpuinfo)
|
||||
|
||||
# Uptime Function.
|
||||
def uptime_display():
|
||||
fuptime = int(open('/proc/uptime').read().split('.')[0])
|
||||
day = int(fuptime / 86400)
|
||||
fuptime = fuptime % 86400
|
||||
hour = int(fuptime / 3600)
|
||||
fuptime = fuptime % 3600
|
||||
minute = int(fuptime / 60)
|
||||
uptime = ''
|
||||
if day == 1:
|
||||
uptime += '%d day, ' % day
|
||||
if day > 1:
|
||||
uptime += '%d days, ' % day
|
||||
uptime += '%d:%02d' % (hour, minute)
|
||||
output('Uptime', uptime)
|
||||
|
||||
# Desktop Environment Function.
|
||||
def de_display():
|
||||
for key in de_dict.keys():
|
||||
if key in processes:
|
||||
de = de_dict[key]
|
||||
output ('Desktop Environment', de)
|
||||
|
||||
# Window Manager Function.
|
||||
def wm_display():
|
||||
for key in wm_dict.keys():
|
||||
if key in processes:
|
||||
wm = wm_dict[key]
|
||||
output ('Window Manager', wm)
|
||||
|
||||
# Shell Function.
|
||||
def sh_display():
|
||||
sh = os.getenv("SHELL").split('/')[-1].capitalize()
|
||||
output ('Shell', sh)
|
||||
|
||||
# Terminal Function.
|
||||
def term_display():
|
||||
term = os.getenv("TERM").split('/')[-1].capitalize()
|
||||
output ('Terminal', term)
|
||||
|
||||
# Packages Function.
|
||||
def packages_display():
|
||||
if DetectDistro == 'Ubuntu':
|
||||
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 DetectDistro == 'Arch':
|
||||
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 DetectDistro == 'Debian':
|
||||
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 DetectDistro == 'CrunchBang':
|
||||
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 DetectDistro == 'Fedora':
|
||||
p1 = Popen(['rpm', '-qa'], stdout=PIPE)
|
||||
p2 = Popen(['wc', '-l'], stdin=p1.stdout, stdout=PIPE)
|
||||
packages = p2.communicate()[0].rstrip('\n')
|
||||
if DetectDistro == 'LinuxMint':
|
||||
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)
|
||||
|
||||
# Disk Function.
|
||||
def disk_display():
|
||||
p1 = Popen(['df', '-Tlh', '--total', '-t', 'ext4', '-t', 'ext3', '-t', 'ext2', '-t', 'reiserfs', '-t', 'jfs', '-t', 'ntfs', '-t', 'fat32', '-t', 'btrfs', '-t', 'fuseblk'], stdout=PIPE).communicate()[0]
|
||||
total = p1.splitlines()[-1]
|
||||
used = total.split()[3]
|
||||
size = total.split()[2]
|
||||
usedpercent = float(total.split()[5][:-1])
|
||||
if usedpercent <= 33:
|
||||
fs = '%s%s %s/ %s' % (greenB, used, clear, size)
|
||||
output ('Disk', fs)
|
||||
if usedpercent > 33 and usedpercent < 67:
|
||||
fs = '%s%s %s/ %s' % (yellowB, used, clear, size)
|
||||
output ('Disk', fs)
|
||||
if usedpercent >= 67:
|
||||
fs = '%s%s %s/ %s' % (redB, used, clear, size)
|
||||
output ('Disk', fs)
|
||||
|
||||
output = [ 'User', 'Hostname', 'Distro', 'Kernel', 'Uptime', 'WindowManager', 'DesktopEnvironment', 'Shell', 'Terminal', 'Packages', 'CPU', 'RAM', 'Disk' ]
|
||||
|
||||
# Run functions found in 'display' array.
|
||||
for x in display:
|
||||
funcname=x+'_display'
|
||||
func=locals()[funcname]
|
||||
func()
|
||||
#---------------Dictionaries---------------#
|
||||
|
||||
# Array containing values.
|
||||
result.extend(['']*(20 - len(display)))
|
||||
colorDict = {
|
||||
'Arch Linux': ['\x1b[0;34m', '\x1b[1;34m'],
|
||||
'Ubuntu': ['\x1b[0;31m', '\x1b[1;31m', '\x1b[0;33m'],
|
||||
'Debian': ['\x1b[0;31m', '\x1b[1;31m'],
|
||||
'Mint': ['\x1b[0;32m', '\x1b[1;37m'],
|
||||
'Crunchbang': ['\x1b[1;37m'],
|
||||
'Fedora': ['\x1b[0;34m', '\x1b[1;37m'],
|
||||
'Sensors': ['\x1b[0;31m', '\x1b[0;32m', '\x1b[0;33m'],
|
||||
'Clear': ['\x1b[0m']
|
||||
}
|
||||
|
||||
deDict = {
|
||||
'gnome-session': 'GNOME',
|
||||
'ksmserver': 'KDE',
|
||||
'xfce4-session': 'Xfce',
|
||||
'lxsession': 'LXDE'
|
||||
}
|
||||
|
||||
# Result.
|
||||
if DetectDistro == 'Ubuntu':
|
||||
print """
|
||||
%s .oyhhs: %s
|
||||
%s ..--.., %sshhhhhh- %s
|
||||
%s -+++++++++`:%syyhhyo` %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:yyyyyo %s
|
||||
%s ``` `%s-::::-` %s:yhhhhh: %s
|
||||
%s -:::::-. %s`-ohhhhhh+ %s
|
||||
%s .::::-` %s-o+///+oyhhyyyhy: %s
|
||||
%s `.-- %s/yhhhhhhhy+%s,.... %s
|
||||
%s /hhhhhhhhh%s-.-:::; %s
|
||||
%s `.:://::- %s-:::::; %s
|
||||
%s `.-:-' %s
|
||||
%s %s
|
||||
%s""" % ( redN, result[0], redB, redN, result[1], redB, redN, result[2], yellowB, redB, redN, result[3], yellowB, redB, result[4], yellowB, redB, result[5], redB, yellowB, redB, result[6], redB, yellowB, redB, result[7], redB, yellowB, result[8], redB, yellowB, redN, result[9], redB, yellowB, redN, result[10], yellowB, redN, result[11], yellowB, redN, result[12], yellowB, redN, yellowB, result[13], redN, yellowB, result[14], redN, yellowB, result[15], yellowB, result[16], yellowB, result[17], clear )
|
||||
wmDict = {
|
||||
'awesome': 'Awesome',
|
||||
'beryl': 'Beryl',
|
||||
'blackbox': 'Blackbox',
|
||||
'compiz': 'Compiz',
|
||||
'dwm': 'DWM',
|
||||
'enlightenment': 'Enlightenment',
|
||||
'fluxbox': 'Fluxbox',
|
||||
'fvwm': 'FVWM',
|
||||
'i3': 'i3',
|
||||
'icewm': 'IceWM',
|
||||
'kwin': 'KWin',
|
||||
'metacity': 'Metacity',
|
||||
'musca': 'Musca',
|
||||
'openbox': 'Openbox',
|
||||
'pekwm': 'PekWM',
|
||||
'ratpoison': 'ratpoison',
|
||||
'scrotwm': 'ScrotWM',
|
||||
'wmaker': 'Window Maker',
|
||||
'wmfs': 'Wmfs',
|
||||
'wmii': 'wmii',
|
||||
'xfwm4': 'Xfwm',
|
||||
'xmonad': 'xmonad'
|
||||
}
|
||||
|
||||
if DetectDistro == 'Arch':
|
||||
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 """ % (blueB, blueB, result[0], blueB, result[1], blueB, result[2], blueB, result[3], blueB, result[4], blueB, result[5], blueB, result[6], blueB, result[7], blueB, blueN, blueB, result[8], blueB, blueN, blueB, result[9], blueB, blueN, result[10], blueN, result[11], blueN, result[12], blueN, result[13], blueN, result[14], blueN, result[15], blueN, result[16], blueN, result[17], clear)
|
||||
logosDict = {'Arch Linux': '''{color[1]}
|
||||
{color[1]} + {results[0]}
|
||||
{color[1]} # {results[1]}
|
||||
{color[1]} ### {results[2]}
|
||||
{color[1]} ##### {results[3]}
|
||||
{color[1]} ###### {results[4]}
|
||||
{color[1]} ; #####; {results[5]}
|
||||
{color[1]} +##.##### {results[6]}
|
||||
{color[1]} +########## {results[7]}
|
||||
{color[1]} ######{color[0]}#####{color[1]}##; {results[8]}
|
||||
{color[1]} ###{color[0]}############{color[1]}+ {results[9]}
|
||||
{color[1]} #{color[0]}###### ####### {results[10]}
|
||||
{color[0]} .######; ;###;`\". {results[11]}
|
||||
{color[0]} .#######; ;#####. {results[12]}
|
||||
{color[0]} #########. .########` {results[13]}
|
||||
{color[0]} ######' '###### {results[14]}
|
||||
{color[0]} ;#### ####; {results[15]}
|
||||
{color[0]} ##' '## {results[16]}
|
||||
{color[0]} #' `# {results[17]}
|
||||
\x1b[0m'''
|
||||
}
|
||||
|
||||
if DetectDistro == 'Debian':
|
||||
print """%s
|
||||
%s %s
|
||||
%s _sudZUZ#Z#XZo=_ %s
|
||||
%s _jmZZ2!!~---~!!X##wx %s
|
||||
%s .<wdP~~ -!YZL, %s
|
||||
%s .mX2' _xaaa__ XZ[. %s
|
||||
%s oZ[ _jdXY!~?S#wa ]Xb; %s
|
||||
%s _#e' .]X2( ~Xw| )XXc %s
|
||||
%s .2Z` ]X[. xY| ]oZ( %s
|
||||
%s .2#; )3k; _s!~ jXf` %s
|
||||
%s 1Z> -]Xb/ ~ __#2( %s
|
||||
%s -Zo; +!4ZwerfgnZZXY' %s
|
||||
%s *#[, ~-?!!!!!!-~ %s
|
||||
%s XUb;. %s
|
||||
%s )YXL,, %s
|
||||
%s +3#bc, %s
|
||||
%s -)SSL,, %s
|
||||
%s ~~~~~ %s
|
||||
%s %s
|
||||
%s """ % (redB, redB, result[0], redB, result[1], redB, result[2], redB, result[3], redB, result[4], redB, result[5], redB, result[6], redB, result[7], redB, result[8], redN, result[9], redN, result[10], redN, result[11], redN, result[12], redN, result[13], redN, result[14], redN, result[15], redN, result[16], redN, result[17], clear)
|
||||
processes = str(subprocess.check_output(('ps', '-u', getuser(), '-o', 'comm',
|
||||
'--no-headers')), encoding='utf8').rstrip('\n').split('\n')
|
||||
|
||||
if DetectDistro == 'Fedora':
|
||||
print """
|
||||
%s :/------------:// %s
|
||||
%s :------------------:// %s
|
||||
%s :-----------%s/shhdhyo/%s-:// %s
|
||||
%s /-----------%somMMMNNNMMMd/%s-:/ %s
|
||||
%s :-----------%ssMMMdo:/%s -:/ %s
|
||||
%s :-----------%s:MMMd%s------- --:/ %s
|
||||
%s /-----------%s:MMMy%s------- ---/ %s
|
||||
%s :------ --%s/+MMMh/%s-- ---: %s
|
||||
%s :--- %soNMMMMMMMMMNho%s -----: %s
|
||||
%s :-- %s+shhhMMMmhhy++%s ------: %s
|
||||
%s :- -----%s:MMMy%s--------------/ %s
|
||||
%s :- ------%s/MMMy%s-------------: %s
|
||||
%s :- ----%s/hMMM+%s------------: %s
|
||||
%s :--%s:dMMNdhhdNMMNo%s-----------: %s
|
||||
%s :---%s:sdNMMMMNds:%s----------: %s
|
||||
%s :------%s:://:%s-----------:// %s
|
||||
%s :--------------------:// %s
|
||||
%s %s
|
||||
%s """ % ( blueN, result[0], blueN, result[1], blueN, whiteB, blueN, result[2], blueN, whiteB, blueN, result[3], blueN, whiteB, blueN, result[4], blueN, whiteB, blueN, result[5], blueN, whiteB, blueN, result[6], blueN, whiteB, blueN, result[7], blueN, whiteB, blueN, result[8], blueN, whiteB, blueN, result[9], blueN, whiteB, blueN, result[10], blueN, whiteB, blueN, result[11], blueN, whiteB, blueN, result[12], blueN, whiteB, blueN, result[13], blueN, whiteB, blueN, result[14], blueN, whiteB, blueN, result[15], blueN, result[16], blueN, result[17], clear )
|
||||
#---------------Classes---------------#
|
||||
|
||||
if DetectDistro == 'CrunchBang':
|
||||
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""" % ( whiteN, result[0], whiteN, result[1], whiteN, result[2], whiteN, result[3], whiteN, result[4], whiteN, result[5], whiteN, result[6], whiteN, result[7], whiteN, result[8], whiteN, result[9], whiteN, result[10], whiteN, result[11], whiteN, result[12], whiteN, result[13], whiteN, result[14], whiteN, result[15], whiteN, result[16], whiteN, result[17], clear )
|
||||
class Output:
|
||||
results = []
|
||||
results.extend(['']*(18-len(output)))
|
||||
|
||||
def __init__(self):
|
||||
self.distro = self.__detectDistro()
|
||||
|
||||
def __detectDistro(self):
|
||||
if os.path.exists('/etc/pacman.conf'):
|
||||
return 'Arch Linux'
|
||||
else:
|
||||
sys.exit(1)
|
||||
|
||||
def append(self, display):
|
||||
self.results.append('%s%s: %s%s' % (colorDict[self.distro][1], display.key, colorDict['Clear'][0], display.value))
|
||||
|
||||
def output(self):
|
||||
print(logosDict[self.distro].format(color = colorDict[self.distro], results = self.results))
|
||||
|
||||
class User:
|
||||
def __init__(self):
|
||||
self.key = 'User'
|
||||
self.value = os.getenv('USER')
|
||||
|
||||
if DetectDistro == 'LinuxMint':
|
||||
print """%s %s
|
||||
%s MMMMMMMMMMMMMMMMMMMMMMMMMmds+. %s
|
||||
%s MMm----::-://////////////oymNMd+` %s
|
||||
%s MMd %s/++ %s-sNMd: %s
|
||||
%s MMNso/` %sdMM `.::-. .-::.` %s.hMN: %s
|
||||
%s ddddMMh %sdMM :hNMNMNhNMNMNh: `%sNMm %s
|
||||
%s NMm %sdMM .NMN/-+MMM+-/NMN` %sdMM %s
|
||||
%s NMm %sdMM -MMm `MMM dMM. %sdMM %s
|
||||
%s NMm %sdMM -MMm `MMM dMM. %sdMM %s
|
||||
%s NMm %sdMM .mmd `mmm yMM. %sdMM %s
|
||||
%s NMm %sdMM` ..` ... ydm. %sdMM %s
|
||||
%s hMM- %s+MMd/-------...-:sdds %sMMM %s
|
||||
%s -NMm- %s:hNMNNNmdddddddddy/` %sdMM %s
|
||||
%s -dMNs-``%s-::::-------.`` %sdMM %s
|
||||
%s `/dMNmy+/:-------------:/yMMM %s
|
||||
%s ./ydNMMMMMMMMMMMMMMMMMMMMM %s
|
||||
%s %s
|
||||
%s %s
|
||||
%s""" % ( whiteB, result[0], whiteB, result[1], whiteB, result[2], whiteB, greenB, whiteB, result[3], whiteB, greenB, whiteB, result[4], whiteB, greenB, whiteB, result[5], whiteB, greenB, whiteB, result[6], whiteB, greenB, whiteB, result[7], whiteB, greenB, whiteB, result[8], whiteB, greenB, whiteB, result[9], whiteB, greenB, whiteB, result[10], whiteB, greenB, whiteB, result[11], whiteB, greenB, whiteB, result[12], whiteB, greenB, whiteB, result[13], whiteB, result[14], whiteB, result[15], whiteB, result[16], whiteB, result[17], clear )
|
||||
class Hostname:
|
||||
def __init__(self):
|
||||
hostname = Popen(['uname', '-n'], stdout=PIPE).communicate()[0].decode('Utf-8').rstrip('\n')
|
||||
self.key = 'Hostname'
|
||||
self.value = hostname
|
||||
|
||||
class Distro:
|
||||
def __init__(self):
|
||||
if os.path.exists('/etc/pacman.conf'):
|
||||
distro = 'Arch Linux'
|
||||
self.key = 'Distro'
|
||||
self.value = distro
|
||||
|
||||
class Kernel:
|
||||
def __init__(self):
|
||||
kernel = Popen(['uname', '-r'], stdout=PIPE).communicate()[0].decode('Utf-8').rstrip('\n')
|
||||
self.key = 'Kernel'
|
||||
self.value = kernel
|
||||
|
||||
class Uptime:
|
||||
def __init__(self):
|
||||
fuptime = int(open('/proc/uptime').read().split('.')[0])
|
||||
day = int(fuptime / 86400)
|
||||
fuptime = fuptime % 86400
|
||||
hour = int(fuptime / 3600)
|
||||
fuptime = fuptime % 3600
|
||||
minute = int(fuptime / 60)
|
||||
uptime = ''
|
||||
if day == 1:
|
||||
uptime += '%d day, ' % day
|
||||
if day > 1:
|
||||
uptime += '%d days, ' % day
|
||||
uptime += '%d:%02d' % (hour, minute)
|
||||
self.key = 'Uptime'
|
||||
self.value = uptime
|
||||
|
||||
class WindowManager:
|
||||
def __init__(self):
|
||||
wm = ''
|
||||
for key in wmDict.keys():
|
||||
if key in processes:
|
||||
wm = wmDict[key]
|
||||
break
|
||||
|
||||
self.key = 'Window Manager'
|
||||
self.value = wm
|
||||
|
||||
class DesktopEnvironment:
|
||||
def __init__(self):
|
||||
de = ''
|
||||
for key in deDict.keys():
|
||||
if key in processes:
|
||||
wm = wmDict[key]
|
||||
break
|
||||
|
||||
self.key = 'Desktop Environment'
|
||||
self.value = de
|
||||
|
||||
class Shell:
|
||||
def __init__(self):
|
||||
self.key = 'Shell'
|
||||
self.value = os.getenv('SHELL')
|
||||
|
||||
class Terminal:
|
||||
def __init__(self):
|
||||
self.key = 'Terminal'
|
||||
self.value = os.getenv('TERM')
|
||||
|
||||
class Packages:
|
||||
def __init__(self):
|
||||
p1 = Popen(['pacman', '-Q'], stdout=PIPE).communicate()[0].decode("Utf-8")
|
||||
packages = len(p1.rstrip('\n').split('\n'))
|
||||
self.key = 'Packages'
|
||||
self.value = packages
|
||||
|
||||
class CPU:
|
||||
def __init__(self):
|
||||
file = open('/proc/cpuinfo').readlines()
|
||||
cpuinfo = re.sub(' +', ' ', file[4].replace('model name\t: ', '').rstrip('\n'))
|
||||
self.key = 'CPU'
|
||||
self.value = cpuinfo
|
||||
|
||||
if screen == 'True':
|
||||
screenshot()
|
||||
class RAM:
|
||||
def __init__(self):
|
||||
raminfo = Popen(['free', '-m'], stdout=PIPE).communicate()[0].decode('Utf-8').split('\n')
|
||||
ram = ''.join(filter(re.compile('M').search, raminfo)).split()
|
||||
used = int(ram[2]) - int(ram[5]) - int(ram[6])
|
||||
usedpercent = ((float(used) / float(ram[1])) * 100)
|
||||
if usedpercent <= 33:
|
||||
ramdisplay = '%s%s MB %s/ %s MB' % (colorDict['Sensors'][2], used, colorDict['Clear'][0], ram[1])
|
||||
if usedpercent > 33 and usedpercent < 67:
|
||||
ramdisplay = '%s%s MB %s/ %s MB' % (colorDict['Sensors'][1], used, colorDict['Clear'][0], ram[1])
|
||||
if usedpercent >= 67:
|
||||
ramdisplay = '%s%s MB %s/ %s MB' % (colorDict['Sensors'][0], used, colorDict['Clear'][0], ram[1])
|
||||
self.key = 'RAM'
|
||||
self.value = ramdisplay
|
||||
|
||||
class Disk:
|
||||
def __init__(self):
|
||||
p1 = Popen(['df', '-Tlh', '--total', '-t', 'ext4', '-t', 'ext3', '-t', 'ext2', '-t', 'reiserfs', '-t', 'jfs', '-t', 'ntfs', '-t', 'fat32', '-t', 'btrfs', '-t', 'fuseblk'], stdout=PIPE).communicate()[0].decode("Utf-8")
|
||||
total = p1.splitlines()[-1]
|
||||
used = total.split()[3]
|
||||
size = total.split()[2]
|
||||
usedpercent = float(total.split()[5][:-1])
|
||||
|
||||
if usedpercent <= 33:
|
||||
disk = '%s%s %s/ %s' % (colorDict['Sensors'][2], used, colorDict['Clear'][0], size)
|
||||
if usedpercent > 33 and usedpercent < 67:
|
||||
disk = '%s%s %s/ %s' % (colorDict['Sensors'][1], used, colorDict['Clear'][0], size)
|
||||
if usedpercent >= 67:
|
||||
disk = '%s%s %s/ %s' % (colorDict['Sensors'][0], used, colorDict['Clear'][0], size)
|
||||
self.key = 'Disk'
|
||||
self.value = disk
|
||||
|
||||
classes = {
|
||||
'User': User,
|
||||
'Hostname': Hostname,
|
||||
'Distro': Distro,
|
||||
'Kernel': Kernel,
|
||||
'Uptime': Uptime,
|
||||
'WindowManager': WindowManager,
|
||||
'DesktopEnvironment': DesktopEnvironment,
|
||||
'Shell': Shell,
|
||||
'Terminal': Terminal,
|
||||
'Packages': Packages,
|
||||
'CPU': CPU,
|
||||
'RAM': RAM,
|
||||
'Disk': Disk
|
||||
}
|
||||
|
||||
out = Output()
|
||||
for x in output:
|
||||
out.append(classes[x]())
|
||||
out.output()
|
||||
|
Loading…
x
Reference in New Issue
Block a user