move config to yaml, json is atrocious
This commit is contained in:
parent
ba862efad9
commit
46f3d778af
4 changed files with 35 additions and 42 deletions
|
@ -1,4 +1,9 @@
|
||||||
vdstatus
|
vdstatus
|
||||||
========
|
========
|
||||||
|
|
||||||
A status script initially for i3bar. Potentially will support lemonbar. It is on very early stages of development.
|
A simple replacement for i3status that is both extensible and customizable.
|
||||||
|
Documentation is pending, but no promises.
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
* python 3
|
||||||
|
* pyyaml
|
||||||
|
|
38
conf.json
38
conf.json
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
"output_format": "i3",
|
|
||||||
"plugins": [
|
|
||||||
{
|
|
||||||
"name": "ping",
|
|
||||||
"hosts": [
|
|
||||||
"de-ber-as20647.anchors.atlas.ripe.net",
|
|
||||||
"nl-ams-as1101.anchors.atlas.ripe.net",
|
|
||||||
"uk-boh-as196745.anchors.atlas.ripe.net"
|
|
||||||
],
|
|
||||||
"title": "NET"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "disk",
|
|
||||||
"partition": "/",
|
|
||||||
"problem": 80,
|
|
||||||
"hide_ok": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "disk",
|
|
||||||
"partition": "/home",
|
|
||||||
"problem": 90
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "pacman"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mem"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "load"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "date",
|
|
||||||
"format": "%a %d %H:%M"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
20
conf.yaml
Normal file
20
conf.yaml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
output_format: i3
|
||||||
|
plugins:
|
||||||
|
- name: ping
|
||||||
|
title: NET
|
||||||
|
hosts:
|
||||||
|
- de-ber-as20647.anchors.atlas.ripe.net
|
||||||
|
- nl-ams-as1101.anchors.atlas.ripe.net
|
||||||
|
- uk-boh-as196745.anchors.atlas.ripe.net
|
||||||
|
- name: disk
|
||||||
|
partition: /
|
||||||
|
problem: 80
|
||||||
|
hide_ok: false
|
||||||
|
- name: disk
|
||||||
|
partition: /home
|
||||||
|
problem: 90
|
||||||
|
- name: pacman
|
||||||
|
- name: mem
|
||||||
|
- name: load
|
||||||
|
- name: date
|
||||||
|
format: '%a %d %H:%M'
|
12
vdstatus
12
vdstatus
|
@ -1,4 +1,5 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
# pylint: disable=C0111
|
||||||
# TODO: consider per plugin hide_ok overriding global, not the other way around
|
# TODO: consider per plugin hide_ok overriding global, not the other way around
|
||||||
# TODO: add documentation / comments
|
# TODO: add documentation / comments
|
||||||
# TODO: interactivity support
|
# TODO: interactivity support
|
||||||
|
@ -8,10 +9,11 @@ import json
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
import yaml
|
||||||
import plugins
|
import plugins
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_CONFIG = os.path.join(os.environ['HOME'], '.config/vdstatus/conf.json')
|
DEFAULT_CONFIG = os.path.join(os.environ['HOME'], '.config/vdstatus/conf.yaml')
|
||||||
|
|
||||||
|
|
||||||
def parse_arguments():
|
def parse_arguments():
|
||||||
|
@ -33,7 +35,7 @@ class PluginRunner:
|
||||||
}
|
}
|
||||||
config = dict()
|
config = dict()
|
||||||
with open(config_file) as config_data:
|
with open(config_file) as config_data:
|
||||||
config = json.load(config_data)
|
config = yaml.load(config_data)
|
||||||
self.conf = plugins.parse_config(config, defaults)
|
self.conf = plugins.parse_config(config, defaults)
|
||||||
self.plugins_loaded = list()
|
self.plugins_loaded = list()
|
||||||
self.format_output = self.format_term
|
self.format_output = self.format_term
|
||||||
|
@ -79,9 +81,13 @@ class PluginRunner:
|
||||||
return ' \033[1m|\033[0m '.join(return_info)
|
return ' \033[1m|\033[0m '.join(return_info)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
def main():
|
||||||
args = parse_arguments()
|
args = parse_arguments()
|
||||||
plugin_runner = PluginRunner(args.conf)
|
plugin_runner = PluginRunner(args.conf)
|
||||||
plugin_runner.start()
|
plugin_runner.start()
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
plugin_runner.run()
|
plugin_runner.run()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
Loading…
Reference in a new issue