44 lines
1.2 KiB
Plaintext
44 lines
1.2 KiB
Plaintext
|
#!/usr/bin/env python
|
||
|
# vim:fileencoding=utf-8:noet
|
||
|
'''Powerline prompt and statusline script.'''
|
||
|
import sys
|
||
|
import os
|
||
|
|
||
|
try:
|
||
|
from powerline.shell import ShellPowerline, get_argparser, finish_args
|
||
|
except ImportError:
|
||
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(os.path.realpath(__file__)))))
|
||
|
from powerline.shell import ShellPowerline, get_argparser, finish_args # NOQA
|
||
|
|
||
|
def write(output):
|
||
|
try:
|
||
|
sys.stdout.write(output)
|
||
|
except UnicodeEncodeError:
|
||
|
sys.stdout.write(output.encode('utf-8'))
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
args = get_argparser(description=__doc__).parse_args()
|
||
|
finish_args(args)
|
||
|
powerline = ShellPowerline(args, run_once=True)
|
||
|
segment_info = {'args': args, 'environ': os.environ}
|
||
|
if args.renderer_arg:
|
||
|
segment_info.update(args.renderer_arg)
|
||
|
if args.side.startswith('above'):
|
||
|
for line in powerline.render_above_lines(
|
||
|
width=args.width,
|
||
|
segment_info=segment_info,
|
||
|
mode=os.environ.get('_POWERLINE_MODE'),
|
||
|
):
|
||
|
write(line)
|
||
|
sys.stdout.write('\n')
|
||
|
args.side = args.side[len('above'):]
|
||
|
|
||
|
if args.side:
|
||
|
rendered = powerline.render(
|
||
|
width=args.width,
|
||
|
side=args.side,
|
||
|
segment_info=segment_info,
|
||
|
mode=os.environ.get('_POWERLINE_MODE'),
|
||
|
)
|
||
|
write(rendered)
|