diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2019-10-09 08:00:34 -0400 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2019-10-09 08:00:34 -0400 |
| commit | da336304d5bb0b8efe0f1c2afdc59c46c6a9d2a6 (patch) | |
| tree | 1712d75759d624ee660845b3895003e24c5e5406 /src | |
| parent | 5ca2e63ea66095fbe64cdc441f6eec663fb28bd4 (diff) | |
Debug API and tests, add test
Diffstat (limited to 'src')
| -rwxr-xr-x | src/config.py | 9 | ||||
| -rwxr-xr-x | src/i3-colors.py | 78 |
2 files changed, 48 insertions, 39 deletions
diff --git a/src/config.py b/src/config.py index b59f79d..bd2366f 100755 --- a/src/config.py +++ b/src/config.py @@ -134,8 +134,13 @@ def write_theme(tmp_config,theme): f.close() -def apply(config_file,theme): +def apply(config_file,theme,dry=False): tmp=extract(config_file) write_theme(tmp,theme) - shutil.move(tmp,config_file) + f=open(tmp,mode="r") + new_config=f.read() + f.close() + if not(dry): + shutil.move(tmp,config_file) + return(new_config) diff --git a/src/i3-colors.py b/src/i3-colors.py index 9450c9c..ceb96e0 100755 --- a/src/i3-colors.py +++ b/src/i3-colors.py @@ -1,59 +1,63 @@ #!/usr/bin/python import config, theme, os, argparse, subprocess,sys -##### Utils Functions ##### -def log(msg,title=""): - if len(title)>0: - print("\033[92m{}\033[00m: {}" .format(title,msg)) - else: - print(msg) -########################### - ##### Apply Theme ##### def apply(args): + if not(args.theme_path): + argsMainParser.print_help() + exit(1) loaded_theme=theme.load(args.theme_path) config_file=os.environ["HOME"]+"/.config/i3/config" - if args.config_path: - config_file=args.config_path - config.apply(config_file,loaded_theme) - for meta_key,meta_value in loaded_theme["meta"].items(): - log(meta_value,title=meta_key.title()) - if args.restart: - subprocess.Popen("i3-msg restart".split(),stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if not(args.dry): + config.apply(config_file,loaded_theme) + for meta_key,meta_value in loaded_theme["meta"].items(): + print("\033[92m{}\033[00m: {}" .format(meta_key.title(),meta_value)) + if args.restart: + subprocess.Popen("i3-msg restart".split(),stdout=subprocess.PIPE, stderr=subprocess.PIPE) + else: + new_config=config.apply(config_file,loaded_theme,dry=True) + print(new_config) ####################### + +##### Aleatory ##### def aleatory(args): t=theme.random_theme().as_dict() config.apply(os.environ["HOME"]+"/.config/i3/config",t) if args.restart: - subprocess.Popen("i3-msg restart".split(),stdout=subprocess.PIPE, stderr=subprocess.PIPE) + subprocess.Popen("i3-msg restart".split(),stdout=subprocess.PIPE, stderr=subprocess.PIPE) +#################### + ##### Extract Theme ##### def extract(args): + if not(args.config_path): + argsMainParser.print_help() + exit(1) t=config.extract_theme(args.config_path) print(t.as_yaml()) ####################### -##### Parse Arguments ##### -argsMainParser = argparse.ArgumentParser(description='I3 Window Manager Colors Themer.') -argsSubParsers = argsMainParser.add_subparsers() -argsApplyParser = argsSubParsers.add_parser("apply") -argsApplyParser.add_argument('theme_path', type=str, nargs='?', - help='I3 YAML theme path.') -argsApplyParser.add_argument('-r', '--restart' ,action='store_true', help='Restart i3 after applying theme.') -argsApplyParser.add_argument('config_path', type=str, nargs='?', - help='I3 configuration file.') -argsApplyParser.set_defaults(func=apply) - -argsExtractParser = argsSubParsers.add_parser("extract") -argsExtractParser.add_argument('config_path', type=str, nargs='?', - help='Extract theme from config file.') -argsExtractParser.set_defaults(func=extract) - -argsAleatoryParser = argsSubParsers.add_parser("aleatory") -argsAleatoryParser.add_argument('-r', '--restart' ,action='store_true', help='Restart i3 after applying theme.') -argsAleatoryParser.set_defaults(func=aleatory) - - +##### Entry Point ##### if __name__ == "__main__": + ##### Main Parser + argsMainParser = argparse.ArgumentParser(description='I3 Window Manager Colors Themer.') + argsSubParsers = argsMainParser.add_subparsers() + ##### Apply Parser + argsApplyParser = argsSubParsers.add_parser("apply") + argsApplyParser.add_argument('theme_path', type=str, nargs='?', + help='I3 YAML theme path.') + argsApplyParser.add_argument('-r', '--restart' ,action='store_true', help='Restart i3 after applying theme.') + argsApplyParser.add_argument('-d', '--dry' ,action='store_true', help='Do not apply theme, just print config file.') + argsApplyParser.set_defaults(func=apply) + ##### Extract Parser + argsExtractParser = argsSubParsers.add_parser("extract") + argsExtractParser.add_argument('config_path', type=str, nargs='?', + help='Extract theme from config file.') + argsExtractParser.set_defaults(func=extract) + ##### Aleatory Parser + argsAleatoryParser = argsSubParsers.add_parser("aleatory") + argsAleatoryParser.add_argument('-r', '--restart' ,action='store_true', help='Restart i3 after applying theme.') + argsAleatoryParser.set_defaults(func=aleatory) + ##### Launch i3-colors args = argsMainParser.parse_args() if len(sys.argv)>1: args.func(args) |
