-
-
Notifications
You must be signed in to change notification settings - Fork 1
Copy and Merge directories
A small Java CLI that mirrors the Python merge-with-tmpl behavior using your existing utility classes:
-
Copy when destination subdirectory doesn’t exist (
CopyDirectoryExtensions) -
Merge when destination subdirectory exists (
MergeDirectoryExtensions, overwriting conflicts) -
Optional dry-run to preview actions
-
Optional defaults via
./config/merge_defaults.json
Status: BETA — Interfaces and defaults may change. Please verify with
--dry-runbefore committing.
./config/merge_defaults.json:
{
"default_src_base": "/path/to/template",
"default_dst_base": "/path/to/project",
"default_dirs": ["scripts", "tests"]
}-
default_src_base– Source base (template) -
default_dst_base– Destination base (your project) -
default_dirs– Directories to process
Run with explicit args:
java io.github.astrapi69.tools.MergeWithTemplate \
--src_base /path/to/template \
--dst_base /path/to/project \
--dirs scripts testsUse defaults from JSON:
java io.github.astrapi69.tools.MergeWithTemplatePreview only:
java io.github.astrapi69.tools.MergeWithTemplate --dry-run --dirs scripts tests-
If
/project/scriptsdoes not exist → copy whole/template/scriptsinto it. -
If
/project/scriptsexists → merge/template/scriptsinto it (files with same relative path are overwritten by source). -
Multiple dirs supported:
--dirs scripts tests assets.
-
Always run with
--dry-runfirst to see planned changes. -
Keep
merge_defaults.jsonin version control to unify defaults across repos. -
Check
git statusafter running to confirm expected diffs. -
Prefer small, focused commits: first the template merge, then your edits.
A JUnit 5 test class is provided (MergeWithTemplateTest) verifying:
-
copy on non-existing destination,
-
merge overwriting behavior,
-
dry-run safety,
-
multi-dir operation.
- Create New Files And Directories
- Delete Files Or Directories
- File Comparison Documentation
- File Modification And Merging
- File Reading Documentation
- File Renaming Documentation
- File Search Documentation
- File Sorting Documentation
- File Writing Documentation
- Java File Copy Utilities
- System Utilities Documentation