Add uname module
This commit is contained in:
parent
dcd219d7e8
commit
57fda43b4e
35
i3pystatus/uname.py
Normal file
35
i3pystatus/uname.py
Normal file
@ -0,0 +1,35 @@
|
||||
import os
|
||||
|
||||
from i3pystatus import Module
|
||||
|
||||
|
||||
class Uname(Module):
|
||||
"""
|
||||
uname(1) like module.
|
||||
|
||||
Formatters:
|
||||
|
||||
- {sysname}: operating system name
|
||||
- {nodename}: name of machine on network (implementation-defined)
|
||||
- {release}: operating system release
|
||||
- {version}: operating system version
|
||||
- {machine}: hardware identifier
|
||||
"""
|
||||
|
||||
format = "{sysname} {release}"
|
||||
settings = (
|
||||
("format", "format string used for output"),
|
||||
)
|
||||
|
||||
def init(self):
|
||||
uname_result = os.uname()
|
||||
fdict = {
|
||||
"sysname": uname_result.sysname,
|
||||
"nodename": uname_result.nodename,
|
||||
"release": uname_result.release,
|
||||
"version": uname_result.version,
|
||||
"machine": uname_result.machine,
|
||||
}
|
||||
self.output = {
|
||||
"full_text": self.format.format(**fdict),
|
||||
}
|
16
tests/test_uname.py
Normal file
16
tests/test_uname.py
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
import os
|
||||
|
||||
from i3pystatus import uname
|
||||
|
||||
|
||||
def test_uname():
|
||||
KEYS = ("sysname", "nodename", "release", "version", "machine")
|
||||
|
||||
uref = os.uname()
|
||||
|
||||
for key in KEYS:
|
||||
um = uname.Uname(format="{" + key + "}")
|
||||
um.init()
|
||||
assert um.output["full_text"] == getattr(uref, key)
|
||||
|
Loading…
Reference in New Issue
Block a user