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.
50 lines
1.5 KiB
50 lines
1.5 KiB
8 years ago
|
#!/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)
|