Developer notes for maintaining this repository.
The project follows:
Functions → main.ps1 → build.ps1 → dist outputSmall files are easier to:
- debug
- test
- maintain
- reuse
- review
Customers prefer:
- one file
- simple execution
- minimal setup
So we merge all scripts into one final distributable.
build.ps1 performs:
- Reads all source files
- Merges contents
- Generates single output script
Output:
dist/cloneReposAskV1.ps1All runtime variables should exist in main.ps1.
Example:
$repos = @(...)
$baseFolder = "D:\KeshavSoftRepos"Because function files should remain reusable and isolated.
Functions:
Verb-Noun.ps1Examples:
Clone-Repos.ps1
Open-Workspace.ps1Functions should:
- do one job only
- avoid global side effects
- avoid UI logic when possible
- return meaningful values
Current build strategy:
Get-Content source.ps1 | Add-Content output.ps1Simple and reliable.
Possible next step:
Config/
repos.jsonThen scripts become reusable across projects.
Use:
Start-Jobor
ForEach-Object -ParallelFuture:
logs/with timestamps.
Possible future:
- ps2exe
- winget package
- installer generation
Keep development scalable.
Keep customer experience simple.