summaryrefslogtreecommitdiff
path: root/src/config.py
diff options
context:
space:
mode:
authormathieui <mathieui@mathieui.net>2015-02-21 23:16:52 +0100
committermathieui <mathieui@mathieui.net>2015-02-21 23:16:52 +0100
commit1209bd94b60cb85c756d937ad9cada69f2428397 (patch)
tree6e215b9f53aa8d37e141844f72513daf340d9b22 /src/config.py
parent96e97962bc64fe8a53c02f7f0bd787cee5c3fc5f (diff)
downloadpoezio-1209bd94b60cb85c756d937ad9cada69f2428397.tar.gz
poezio-1209bd94b60cb85c756d937ad9cada69f2428397.tar.bz2
poezio-1209bd94b60cb85c756d937ad9cada69f2428397.tar.xz
poezio-1209bd94b60cb85c756d937ad9cada69f2428397.zip
Add a -c/--check-config option to check the config file
It displays the missing options and the ones which are changed from the default values.
Diffstat (limited to 'src/config.py')
-rw-r--r--src/config.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/config.py b/src/config.py
index ef5168e1..333809d2 100644
--- a/src/config.py
+++ b/src/config.py
@@ -522,6 +522,34 @@ def check_create_cache_dir():
except OSError:
pass
+def check_config():
+ """
+ Check the config file and print results
+ """
+ result = {'missing': [], 'changed': []}
+ for option in DEFAULT_CONFIG['Poezio']:
+ value = config.get(option)
+ if value != DEFAULT_CONFIG['Poezio'][option]:
+ result['changed'].append((option, value, DEFAULT_CONFIG['Poezio'][option]))
+ else:
+ value = config.get(option, default='')
+ upper = value.upper()
+ default = str(DEFAULT_CONFIG['Poezio'][option]).upper()
+ if upper != default:
+ result['missing'].append(option)
+
+ result['changed'].sort(key=lambda x: x[0])
+ result['missing'].sort()
+ if result['changed']:
+ print('\033[1mOptions changed from the default configuration:\033[0m\n')
+ for option, new_value, default in result['changed']:
+ print(' \033[1m%s\033[0m = \033[33m%s\033[0m (default: \033[32m%s\033[0m)' % (option, new_value, default))
+
+ if result['missing']:
+ print('\n\033[1mMissing options:\033[0m (the defaults are used)\n')
+ for option in result['missing']:
+ print(' \033[31m%s\033[0m' % option)
+
def run_cmdline_args(CONFIG_PATH):
"Parse the command line arguments"
global options