Compare commits

..

2 Commits

Author SHA1 Message Date
Hazel Noack
d968795628 cli script to recompile config 2025-07-29 12:46:56 +02:00
Hazel Noack
05f7003ea8 removed development cli script 2025-07-29 12:38:08 +02:00
2 changed files with 41 additions and 22 deletions

View File

@ -14,7 +14,7 @@ version = "0.0.0"
license-files = ["LICENSE"] license-files = ["LICENSE"]
[project.scripts] [project.scripts]
python-mommy-dev = "python_mommy_venv.__main__:development" mommify-venv-compile = "python_mommy_venv.__main__:cli_compile_config"
mommify-venv = "python_mommy_venv.__main__:mommify_venv" mommify-venv = "python_mommy_venv.__main__:mommify_venv"
[build-system] [build-system]

View File

@ -33,14 +33,6 @@ def config_logging(verbose: bool):
serious_logger.setLevel(logging.DEBUG) serious_logger.setLevel(logging.DEBUG)
def development():
s = "positive"
if len(sys.argv) > 1:
s = sys.argv[1]
compile_config()
WRAPPER_TEMPLATE = """#!{inner_bin} WRAPPER_TEMPLATE = """#!{inner_bin}
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
@ -93,13 +85,29 @@ PIP_HOOK = """# GENERATED BY MOMMY
sys.exit(code)""" sys.exit(code)"""
def assert_venv(): def assert_venv(only_warn: bool = False):
if not IS_VENV: if not IS_VENV:
mommy_logger.error("mommy doesn't run in a virtual environment~") mommy_logger.error("mommy doesn't run in a virtual environment~")
serious_logger.error("this has to run in a virtual environment") serious_logger.error("this should run in a virtual environment")
if not only_warn:
exit(1) exit(1)
def write_compile_config(local: bool):
assert_venv(only_warn=not local)
compiled_base_dir = VENV_DIRECTORY if local else CONFIG_DIRECTORY
compiled_config_file = compiled_base_dir / COMPILED_CONFIG_FILE_NAME
compiled = compile_config()
mommy_logger.info("mommy writes its moods in %s", compiled_config_file)
serious_logger.info("writing compiled config file to %s", compiled_config_file)
compiled_base_dir.mkdir(parents=True, exist_ok=True)
with compiled_config_file.open("w") as f:
json.dump(compiled, f, indent=4)
if not local:
(VENV_DIRECTORY / COMPILED_CONFIG_FILE_NAME).unlink(missing_ok=True)
def wrap_interpreter(path: Path): def wrap_interpreter(path: Path):
mommy_logger.info("mommy found a symlink to an interpreter~ %s", str(path)) mommy_logger.info("mommy found a symlink to an interpreter~ %s", str(path))
serious_logger.info("interpreter symlink found at %s", str(path)) serious_logger.info("interpreter symlink found at %s", str(path))
@ -146,6 +154,26 @@ def install_pip_hook(path: Path):
f.write(text) f.write(text)
def cli_compile_config():
parser = argparse.ArgumentParser(description="only recompile the config")
parser.add_argument(
"-v", "--verbose",
action="store_true",
help="enable verbose and serious output"
)
parser.add_argument(
"-l", "--local",
action="store_true",
help="compile the config only for the current virtual environment"
)
args = parser.parse_args()
write_compile_config(args.local)
def mommify_venv(): def mommify_venv():
parser = argparse.ArgumentParser(description="patch the virtual environment to use mommy") parser = argparse.ArgumentParser(description="patch the virtual environment to use mommy")
@ -166,16 +194,7 @@ def mommify_venv():
config_logging(args.verbose) config_logging(args.verbose)
assert_venv() assert_venv()
compiled_base_dir = VENV_DIRECTORY if args.local else CONFIG_DIRECTORY write_compile_config(args.local)
compiled_config_file = compiled_base_dir / COMPILED_CONFIG_FILE_NAME
compiled = compile_config()
mommy_logger.info("mommy writes its moods in %s", compiled_config_file)
serious_logger.info("writing compiled config file to %s", compiled_config_file)
compiled_base_dir.mkdir(parents=True, exist_ok=True)
with compiled_config_file.open("w") as f:
json.dump(compiled, f, indent=4)
if not args.local:
(VENV_DIRECTORY / COMPILED_CONFIG_FILE_NAME).unlink(missing_ok=True)
mommy_logger.info("") mommy_logger.info("")