diff options
| author | Federico Ceratto <federico.ceratto@gmail.com> | 2015-03-18 15:52:40 +0000 |
|---|---|---|
| committer | Federico Ceratto <federico.ceratto@gmail.com> | 2015-03-18 15:52:40 +0000 |
| commit | 711bbf3aeafbc7f1bbc3476b2c08558cc5ec3474 (patch) | |
| tree | 90e7b469980d4935c3fe8449e047bb5a15a2719e /py3status/__init__.py | |
| parent | 35e1037960e4136af93845743949a78aa4abe4cf (diff) | |
Refactor default config file
Diffstat (limited to 'py3status/__init__.py')
| -rwxr-xr-x | py3status/__init__.py | 53 |
1 files changed, 23 insertions, 30 deletions
diff --git a/py3status/__init__.py b/py3status/__init__.py index 226448b..024451e 100755 --- a/py3status/__init__.py +++ b/py3status/__init__.py @@ -1120,6 +1120,27 @@ class Py3statusWrapper(): version = 'unknown' config['version'] = version + # i3status config file default detection + # respect i3status' file detection order wrt issue #43 + i3status_config_file_candidates = [ + '{}/.i3status.conf'.format(home_path), + '{}/.config/i3status/config'.format( + os.environ.get('XDG_CONFIG_HOME', home_path) + ), + '/etc/i3status.conf', + '{}/i3status/config'.format( + os.environ.get('XDG_CONFIG_DIRS', '/etc/xdg') + ) + ] + for fn in i3status_config_file_candidates: + if os.path.isfile(fn): + i3status_config_file_default = fn + break + else: + # if none of the default files exists, we will default + # to ~/.i3/i3status.conf + i3status_config_file_default = '{}/.i3/i3status.conf'.format(home_path) + # command line options parser = argparse.ArgumentParser( description='The agile, python-powered, i3status wrapper') @@ -1127,6 +1148,7 @@ class Py3statusWrapper(): parser.add_argument('-c', '--config', action="store", dest="i3status_conf", type=str, + default=i3status_config_file_default, help="path to i3status config file") parser.add_argument('-d', '--debug', action="store_true", help="be verbose in syslog") @@ -1169,36 +1191,7 @@ class Py3statusWrapper(): config['include_paths'] = options.include_paths config['interval'] = int(options.interval) config['standalone'] = options.standalone - - # i3status config file path setup or default detection - if options.i3status_conf: - config['i3status_config_path'] = options.i3status_conf - else: - # find i3status default config file - # respect i3status' file detection order wrt issue #43 - i3status_config_files = [ - '{}/.i3status.conf'.format(home_path), - '{}/.config/i3status/config'.format( - os.environ.get('XDG_CONFIG_HOME', home_path) - ), - '/etc/i3status.conf', - '{}/i3status/config'.format( - os.environ.get('XDG_CONFIG_DIRS', '/etc/xdg') - ) - ] - i3status_config_files = list( - filter( - os.path.isfile, - i3status_config_files - ) - ) - - # if none of the default files exists, we will default - # to ~/.i3/i3status.conf - config['i3status_config_path'] = ( - i3status_config_files[0] if i3status_config_files - else '{}/.i3/i3status.conf'.format(home_path) - ) + config['i3status_config_path'] = options.i3status_conf # all done return config |
