You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
#!/usr/bin/env python |
|
from __future__ import print_function |
|
import os |
|
import stat |
|
|
|
try: |
|
import config |
|
except ImportError: |
|
print('Created personal config.py for your customizations') |
|
import shutil |
|
shutil.copyfile('config.py.dist', 'config.py') |
|
import config |
|
|
|
TEMPLATE_FILE = 'powerline_shell_base.py' |
|
OUTPUT_FILE = 'powerline-shell.py' |
|
SEGMENTS_DIR = 'segments' |
|
THEMES_DIR = 'themes' |
|
|
|
def load_source(srcfile): |
|
try: |
|
return ''.join(open(srcfile).readlines()) + '\n\n' |
|
except IOError: |
|
print('Could not open', srcfile) |
|
return '' |
|
|
|
if __name__ == "__main__": |
|
source = load_source(TEMPLATE_FILE) |
|
source += load_source(os.path.join(THEMES_DIR, 'default.py')) |
|
|
|
if config.THEME != 'default': |
|
source += load_source(os.path.join(THEMES_DIR, config.THEME + '.py')) |
|
|
|
for segment in config.SEGMENTS: |
|
source += load_source(os.path.join(SEGMENTS_DIR, segment + '.py')) |
|
|
|
# assumes each segment file will have a function called |
|
# add_segment__[segment] that accepts the powerline object |
|
source += 'add_{}_segment(powerline)\n'.format(segment) |
|
|
|
source += 'sys.stdout.write(powerline.draw())\n' |
|
|
|
try: |
|
open(OUTPUT_FILE, 'w').write(source) |
|
st = os.stat(OUTPUT_FILE) |
|
os.chmod(OUTPUT_FILE, st.st_mode | stat.S_IEXEC) |
|
print(OUTPUT_FILE, 'saved successfully') |
|
except IOError: |
|
print('ERROR: Could not write to powerline-shell.py. Make sure it is writable') |
|
exit(1)
|
|
|