feat: Architecture enhancements - CLI framework, plugins, TUI, testing #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Architecture Enhancements
This PR implements 8 major architecture improvements to transform git-control into a modern, extensible CLI toolkit.
Summary of Changes
1. ✅ Modular CLI Framework
gcentry point as unified command dispatchercommands/directory--json,--quiet,--verbose)2. ✅ Configuration System
scripts/lib/config.sh- hierarchical config management~/.config/git-control/config.yaml,.gc-init.yaml3. ✅ Plugin Architecture
plugins/directory with auto-discoverygc plugincommand for management4. ✅ Interactive TUI Mode
scripts/lib/tui.sh- rich terminal UI librarytui_choose(),tui_confirm(),tui_input(),tui_spin()5. ✅ Output Format Support
scripts/lib/output.sh- consistent output handling--json(machine),--quiet(minimal),--verbose(debug)out(),verbose(),debug(),json_output()6. ✅ Install Script
install.shfor easy distribution--prefix,--bin,--uninstall,--upgrade7. ✅ Testing Framework
tests/lib/*.bats- unit tests for librariestests/gc.bats- integration tests.github/workflows/test.yml- CI automation8. ✅ Version Management
scripts/lib/version.sh- version utilitiesgc versioncommand with subcommandsCHANGELOG.mdfollowing Keep a Changelog formatNew Files
Installation (after merge)
curl -sSL https://raw.githubusercontent.com/xaoscience/git-control/Main/install.sh | bashUsage Examples
Breaking Changes
None - all existing scripts remain functional.
Testing
./tests/run_tests.sh # Run all testsCloses: N/A (feature enhancement)