feat: rework the comand structure to be VERB NOUN #177
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.
NOUN Module Structure
internal/
├── cmd/
│ ├── cmd.go # Root command
│ └── verbs/ # VERB implementations
│ ├── get.go
│ ├── list.go
│ ├── create.go
│ ├── edit.go
│ ├── delete.go
│ └── logs.go
└── nouns/
├── interface.go # Common interfaces
├── airbyte/
│ ├── getter.go # abctl get airbyte
│ ├── lister.go # abctl list airbyte
│ ├── creator.go # abctl create airbyte (install)
│ ├── editor.go # abctl edit airbyte
│ ├── deleter.go # abctl delete airbyte (uninstall)
│ └── logger.go # abctl logs airbyte
├── dataplane/
│ ├── getter.go
│ ├── lister.go
│ ├── creator.go
│ ├── editor.go
│ ├── deleter.go
│ └── logger.go
├── region/
│ └── ... (same pattern)
└── workspace/
└── ... (same pattern)
Example Commands
Airbyte (local) operations
abctl create airbyte --port 8000 --low-resource-mode
abctl get airbyte # status by default
abctl get airbyte --credentials # get credentials
abctl get airbyte --manifest # get image manifest
abctl list airbyte # list deployments
abctl logs airbyte --follow
abctl edit airbyte --port 9000 # modify configuration
abctl delete airbyte --force
Workspace operations
abctl create workspace my-workspace --region us-west-2
abctl get workspace my-workspace
abctl list workspace --region us-west-2
abctl edit workspace my-workspace --name new-name
abctl delete workspace my-workspace
Dataplane operations
abctl create dataplane prod-dataplane --region eu-central-1
abctl list dataplane
abctl get dataplane prod-dataplane
abctl logs dataplane prod-dataplane --tail 100
Region operations
abctl list region
abctl get region us-west-2
Benefits