aboutsummaryrefslogtreecommitdiff
path: root/isv.py
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2021-02-12 23:20:45 +0300
committerEvgeny Zinoviev <me@ch1p.io>2021-02-13 01:10:57 +0300
commit534500d21247d4c904090425d3a924c18afea135 (patch)
tree991fb08a0f0b587ce424171eb2f2f75f8a35dc94 /isv.py
initial
Diffstat (limited to 'isv.py')
-rw-r--r--isv.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/isv.py b/isv.py
new file mode 100644
index 0000000..ab4268b
--- /dev/null
+++ b/isv.py
@@ -0,0 +1,42 @@
+import subprocess
+import configstore
+import json
+
+
+def __run(argv: list, fmt='json-w-units'):
+ argv.insert(0, configstore.get_isv_bin())
+ if configstore.use_sudo():
+ argv.insert(0, 'sudo')
+ argv.append('--format')
+ argv.append(fmt)
+
+ result = subprocess.run(argv, capture_output=True)
+ if result.returncode != 0:
+ raise ChildProcessError("isv returned %d: %s" % (result.returncode, result.stderr))
+
+ return json.loads(result.stdout) if 'json' in fmt else result.stdout.decode('utf-8')
+
+
+def general_status(as_table=False):
+ kwargs = {}
+ if as_table:
+ kwargs['fmt'] = 'table'
+ return __run(['--get-general-status'], **kwargs)
+
+
+def day_generated(y: int, m: int, d: int):
+ return __run(['--get-day-generated', str(y), str(m), str(d)])
+
+
+def rated_information(as_table=False):
+ kwargs = {}
+ if as_table:
+ kwargs['fmt'] = 'table'
+ return __run(['--get-rated-information'], **kwargs)
+
+
+def faults(as_table=False):
+ kwargs = {}
+ if as_table:
+ kwargs['fmt'] = 'table'
+ return __run(['--get-faults-warnings'], **kwargs)