Skip to content

Add JSON configuration file support with merge hierarchy for Issue #21#22

Merged
darianmiller merged 2 commits intomainfrom
add_json_external_config_files
Apr 4, 2026
Merged

Add JSON configuration file support with merge hierarchy for Issue #21#22
darianmiller merged 2 commits intomainfrom
add_json_external_config_files

Conversation

@darianmiller
Copy link
Copy Markdown
Contributor

Introduces three config file locations ($HOME, project-level, local override) with scalar-override and array-append merge semantics. Supports upward traversal (searchParentFolders) triggered by project or local config, with stop-marker support.

Introduces three config file locations ($HOME, project-level, local
override) with scalar-override and array-append merge semantics.
Supports upward traversal (searchParentFolders) triggered by project
or local config, with stop-marker support.
- Add `-ConfigFile <path>` to inject an explicit config file (e.g. for CI
  pipelines) at highest config priority below command-line parameters.

- Add `-ShowConfig` to display the effective merged configuration and exit
  without scanning or cleaning. Supports `-Json` for machine-readable output.

- Add freed-space reporting to the clean summary:
  `Space freed : 142.3 MB` (text) or `BytesFreed` (JSON).
  Also reported in `-Check` mode as `Space to free` and in `-WhatIf` mode
  as `Space would free`.

- Add elapsed time to all summaries (`Duration` in text, `DurationMs` in JSON).

- Add `Size` (bytes) to every item in the JSON `Items` array, covering both
  files (direct length) and directories (recursive sum computed before deletion).

- Add `Write-Progress` feedback during file scan (updates every 500 files) and
  during the deletion phase; suppressed when `-Json` is active.

- Add cross-platform build artifact patterns to the `standard` level:
  `*.o`, `*.a` (Linux/macOS object/static-lib), `*.dylib` (macOS dynamic lib).

- Add `iOSSimulatorArm64` and `LinuxARM64` output directories to the
  `standard` level for Delphi 12+ platform targets.

- Add `*.mab` (MadExcept/JEDI debug map) to the `deep` level.
@darianmiller darianmiller merged commit f17eceb into main Apr 4, 2026
1 check passed
@darianmiller darianmiller deleted the add_json_external_config_files branch April 4, 2026 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant