diff options
| author | Hunt <lizhunt@amazon.com> | 2025-06-03 11:58:25 -0700 |
|---|---|---|
| committer | Hunt <lizhunt@amazon.com> | 2025-06-03 11:58:25 -0700 |
| commit | ee9ad10b5cc9850c3e2ed1946f70e0cef429fb48 (patch) | |
| tree | b6b0411b02127951cc28292425a35a1830c2758d /dots_manager/cli.py | |
| parent | 64d060d2730cd212b2932879036eb33f7336ef38 (diff) | |
| download | dots-ee9ad10b5cc9850c3e2ed1946f70e0cef429fb48.tar.gz dots-ee9ad10b5cc9850c3e2ed1946f70e0cef429fb48.zip | |
Refactor
Diffstat (limited to 'dots_manager/cli.py')
| -rw-r--r-- | dots_manager/cli.py | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/dots_manager/cli.py b/dots_manager/cli.py index f152a96..6621954 100644 --- a/dots_manager/cli.py +++ b/dots_manager/cli.py @@ -1,16 +1,28 @@ -from dots_manager.args import parse_arguments -from dots_manager.env import initialize_environment +import sys +import shutil +from dots_manager.config import Environment, parse_arguments from dots_manager.template import compile_dotfiles from dots_manager.stow import apply_stow_operation_to_packages def main(): args = parse_arguments() - env = initialize_environment(args) + env = Environment.from_argv(args) - if args.clean: - apply_stow_operation_to_packages(args.comp, args.target, "-D", env) - if args.compile: - compile_dotfiles(args.source, args.comp, env) - if args.stow: - apply_stow_operation_to_packages(args.comp, args.target, "--no-folding", env) + if args.clean and not ( + apply_stow_operation_to_packages(args.output, args.target, "--delete", env) + and (not args.output.exists() or shutil.rmtree(args.output) is None) + ): + env.logger.error("could not clean up stowed dotfiles <_mood.sad>") + sys.exit(1) + if args.compile and not compile_dotfiles(args.source, args.output, env): + env.logger.error("could not compile dotfiles <_mood.sad>") + sys.exit(1) + if args.stow and not apply_stow_operation_to_packages( + args.output, args.target, "--no-folding", env + ): + env.logger.error("could not stow dotfile packages <_mood.sad>") + sys.exit(1) + + env.logger.info("done! <_mood.happy>") + sys.exit(0) |
