|
| 1 | +import logging |
1 | 2 | from argparse import RawDescriptionHelpFormatter |
2 | 3 | from collections.abc import Iterable |
3 | 4 | from dataclasses import dataclass, field |
@@ -200,6 +201,8 @@ def operation_merge( |
200 | 201 | self.logger.info("No new source files or folders, stopping") |
201 | 202 | return 0 |
202 | 203 |
|
| 204 | + self.log_sources(new_sources, True) |
| 205 | + |
203 | 206 | if self.args.check: |
204 | 207 | self.logger.info("Some file or folders would be added") |
205 | 208 | return 1 # Something left to do, so exit with error (= check has failed) |
@@ -229,6 +232,8 @@ def operation_remove( |
229 | 232 | self.logger.info("No files or folders to un-register, stopping") |
230 | 233 | return 0 |
231 | 234 |
|
| 235 | + self.log_sources(to_remove, False) |
| 236 | + |
232 | 237 | if self.args.check: |
233 | 238 | self.logger.info("Some file or folders would be un-registered") |
234 | 239 | return 1 # Something left to do, so exit with error (= check has failed) |
@@ -278,6 +283,9 @@ def operation_reset(self, current_sources: FileItems, new_sources: FileItemsGrou |
278 | 283 | self.logger.info("No files or folders to change, stopping") |
279 | 284 | return 0 |
280 | 285 |
|
| 286 | + self.log_sources(to_add, True) |
| 287 | + self.log_sources(to_remove, False) |
| 288 | + |
281 | 289 | if self.args.check: |
282 | 290 | self.logger.info("Some file or folders would be (un-)registered") |
283 | 291 | return 1 # Something left to do, so exit with error (= check has failed) |
@@ -432,6 +440,20 @@ def remove_helper(ref_elements, ref_set): |
432 | 440 | remove_helper(self._element_folders, to_remove.folders) |
433 | 441 | remove_helper(self._element_files, to_remove.files) |
434 | 442 |
|
| 443 | + def log_sources(self, source: FileItems, add: bool): |
| 444 | + """Log a set of sources in its entirety. |
| 445 | +
|
| 446 | + Logged a INFO level when `dry` or `check` (otherwise the output is kind of |
| 447 | + meaningless), otherwise at DEBUG. |
| 448 | + """ |
| 449 | + level = logging.INFO if self.args.check or self.args.dry else logging.DEBUG |
| 450 | + |
| 451 | + action = "New" if add else "Remove" |
| 452 | + for item in source.files: |
| 453 | + self.logger.log(level, f"{action} file: {item}") |
| 454 | + for item in source.folders: |
| 455 | + self.logger.log(level, f"{action} folder: {item}") |
| 456 | + |
435 | 457 | @staticmethod |
436 | 458 | def path_to_str(path: PurePath) -> str: |
437 | 459 | """Turn any path into a windows-path string. |
|
0 commit comments