From ee9ad10b5cc9850c3e2ed1946f70e0cef429fb48 Mon Sep 17 00:00:00 2001 From: Hunt Date: Tue, 3 Jun 2025 11:58:25 -0700 Subject: Refactor --- dots_manager/cli.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'dots_manager/cli.py') 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) -- cgit v1.2.3-70-g09d2