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