|
1 | 1 | """Sync command for somesy.""" |
2 | 2 | import logging |
3 | 3 | from pathlib import Path |
4 | | -from typing import Optional |
5 | 4 |
|
6 | 5 | import typer |
7 | | -from rich.pretty import pretty_repr |
8 | 6 |
|
9 | 7 | from somesy.commands import sync as sync_command |
10 | | -from somesy.core.core import discover_input |
11 | | -from somesy.core.log import SomesyLogLevel, get_log_level, set_log_level |
12 | | -from somesy.core.models import SomesyConfig, SomesyInput |
| 8 | +from somesy.core.models import SomesyInput |
13 | 9 |
|
14 | | -from .util import wrap_exceptions |
| 10 | +from .util import resolved_somesy_input, wrap_exceptions |
15 | 11 |
|
16 | 12 | logger = logging.getLogger("somesy") |
17 | 13 |
|
@@ -107,42 +103,17 @@ def sync( |
107 | 103 | ), |
108 | 104 | ): |
109 | 105 | """Sync project metadata input with metadata files.""" |
110 | | - # --------------- |
111 | | - # config from CLI (merged with possibly set CLI flags for logging) |
112 | | - passed_cli_args = { |
113 | | - k: v |
114 | | - for k, v in dict( |
115 | | - input_file=discover_input(input_file), |
116 | | - no_sync_cff=no_sync_cff, |
117 | | - cff_file=cff_file, |
118 | | - no_sync_pyproject=no_sync_pyproject, |
119 | | - pyproject_file=pyproject_file, |
120 | | - no_sync_package_json=no_sync_package_json, |
121 | | - package_json_file=package_json_file, |
122 | | - no_sync_codemeta=no_sync_codemeta, |
123 | | - codemeta_file=codemeta_file, |
124 | | - ).items() |
125 | | - if v is not None |
126 | | - } |
127 | | - somesy_conf = SomesyConfig(**passed_cli_args) |
128 | | - |
129 | | - # cli_log_level is None if the user did not pass a log level (-> "default") |
130 | | - cli_log_level: Optional[SomesyLogLevel] = get_log_level() |
131 | | - |
132 | | - if cli_log_level is not None: |
133 | | - # update log level flags if cli log level was set |
134 | | - somesy_conf.update_log_level(cli_log_level) |
135 | | - |
136 | | - somesy_input: SomesyInput = somesy_conf.get_input() |
137 | | - |
138 | | - if cli_log_level is None: |
139 | | - # no cli log level -> set it according to the loaded configuration |
140 | | - set_log_level(somesy_input.config.log_level()) |
141 | | - |
142 | | - logger.debug( |
143 | | - f"Combined config (Defaults + File + CLI):\n{pretty_repr(somesy_input.config)}" |
| 106 | + somesy_input = resolved_somesy_input( |
| 107 | + input_file=input_file, |
| 108 | + no_sync_cff=no_sync_cff, |
| 109 | + cff_file=cff_file, |
| 110 | + no_sync_pyproject=no_sync_pyproject, |
| 111 | + pyproject_file=pyproject_file, |
| 112 | + no_sync_package_json=no_sync_package_json, |
| 113 | + package_json_file=package_json_file, |
| 114 | + no_sync_codemeta=no_sync_codemeta, |
| 115 | + codemeta_file=codemeta_file, |
144 | 116 | ) |
145 | | - # -------- |
146 | 117 | run_sync(somesy_input) |
147 | 118 |
|
148 | 119 |
|
|
0 commit comments