mirror of
https://github.com/powerline/powerline.git
synced 2025-07-30 01:05:42 +02:00
Move --config and --theme_option processing to finish_args
This commit is contained in:
parent
7ccab8e436
commit
4c426df5e0
@ -7,8 +7,9 @@ from powerline.lib import mergedicts, parsedotval
|
|||||||
def mergeargs(argvalue):
|
def mergeargs(argvalue):
|
||||||
if not argvalue:
|
if not argvalue:
|
||||||
return None
|
return None
|
||||||
r = dict([argvalue[0]])
|
argvalue = iter(argvalue)
|
||||||
for subval in argvalue[1:]:
|
r = dict([next(argvalue)])
|
||||||
|
for subval in argvalue:
|
||||||
mergedicts(r, dict([subval]))
|
mergedicts(r, dict([subval]))
|
||||||
return r
|
return r
|
||||||
|
|
||||||
@ -16,13 +17,13 @@ def mergeargs(argvalue):
|
|||||||
class ShellPowerline(Powerline):
|
class ShellPowerline(Powerline):
|
||||||
def __init__(self, args, **kwargs):
|
def __init__(self, args, **kwargs):
|
||||||
self.args = args
|
self.args = args
|
||||||
self.theme_option = mergeargs(args.theme_option) or {}
|
self.theme_option = args.theme_option
|
||||||
super(ShellPowerline, self).__init__(args.ext[0], args.renderer_module, **kwargs)
|
super(ShellPowerline, self).__init__(args.ext[0], args.renderer_module, **kwargs)
|
||||||
|
|
||||||
def load_main_config(self):
|
def load_main_config(self):
|
||||||
r = super(ShellPowerline, self).load_main_config()
|
r = super(ShellPowerline, self).load_main_config()
|
||||||
if self.args.config:
|
if self.args.config:
|
||||||
mergedicts(r, mergeargs(self.args.config))
|
mergedicts(r, self.args.config)
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def load_theme_config(self, name):
|
def load_theme_config(self, name):
|
||||||
@ -49,7 +50,16 @@ def get_argparser(parser=None, *args, **kwargs):
|
|||||||
p.add_argument('-w', '--width', type=int)
|
p.add_argument('-w', '--width', type=int)
|
||||||
p.add_argument('--last_exit_code', metavar='INT', type=int)
|
p.add_argument('--last_exit_code', metavar='INT', type=int)
|
||||||
p.add_argument('--last_pipe_status', metavar='LIST', default='', type=lambda s: [int(status) for status in s.split()])
|
p.add_argument('--last_pipe_status', metavar='LIST', default='', type=lambda s: [int(status) for status in s.split()])
|
||||||
p.add_argument('-c', '--config', metavar='KEY.KEY=VALUE', type=parsedotval, action='append')
|
p.add_argument('-c', '--config', metavar='KEY.KEY=VALUE', action='append')
|
||||||
p.add_argument('-t', '--theme_option', metavar='THEME.KEY.KEY=VALUE', type=parsedotval, action='append')
|
p.add_argument('-t', '--theme_option', metavar='THEME.KEY.KEY=VALUE', action='append')
|
||||||
p.add_argument('-p', '--config_path', metavar='PATH')
|
p.add_argument('-p', '--config_path', metavar='PATH')
|
||||||
return p
|
return p
|
||||||
|
|
||||||
|
|
||||||
|
def finish_args(args):
|
||||||
|
if args.config:
|
||||||
|
args.config = mergeargs((parsedotval(v) for v in args.config))
|
||||||
|
if args.theme_option:
|
||||||
|
args.theme_option = mergeargs((parsedotval(v) for v in args.config))
|
||||||
|
else:
|
||||||
|
args.theme_option = {}
|
||||||
|
@ -5,14 +5,15 @@ import sys
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from powerline.shell import ShellPowerline, get_argparser
|
from powerline.shell import ShellPowerline, get_argparser, finish_args
|
||||||
except ImportError:
|
except ImportError:
|
||||||
import os
|
import os
|
||||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
from powerline.shell import ShellPowerline, get_argparser # NOQA
|
from powerline.shell import ShellPowerline, get_argparser, finish_args # NOQA
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
args = get_argparser(description=__doc__).parse_args()
|
args = get_argparser(description=__doc__).parse_args()
|
||||||
|
finish_args(args)
|
||||||
powerline = ShellPowerline(args, run_once=True)
|
powerline = ShellPowerline(args, run_once=True)
|
||||||
rendered = powerline.render(
|
rendered = powerline.render(
|
||||||
width=args.width,
|
width=args.width,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user