feat: add shell scripting with variables
Implemented roadmap #9: Shell scripts execution with variables. Features: - set <name> <value> - Set shell variable - unset <name> - Remove variable - vars - List all variables - Variable substitution in all commands Variable syntax: - $VAR or ${VAR} - Shell variables - $ENV:VARNAME - Environment variables Variables expand before command execution, enabling: - Dynamic key paths: put $BASE/$ID '{"data":"value"}' - Reusable values: set TOKEN xyz && auth $TOKEN - Script parameterization in batch files Example batch script: set USER alice set KEY_PREFIX users put $KEY_PREFIX/$USER '{"name":"$USER"}' get $KEY_PREFIX/$USER Variables are session-scoped and work in both interactive and batch modes. Environment variables can be injected using $ENV:HOME syntax. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,7 @@ type KVSClient struct {
|
||||
httpClient *http.Client
|
||||
profiles map[string]Profile
|
||||
activeProfile string
|
||||
variables map[string]string // Shell variables for scripting
|
||||
}
|
||||
|
||||
// NewKVSClient creates a new KVS client instance
|
||||
@@ -25,7 +26,8 @@ func NewKVSClient(baseURL string) *KVSClient {
|
||||
httpClient: &http.Client{
|
||||
Timeout: 30 * time.Second,
|
||||
},
|
||||
profiles: make(map[string]Profile),
|
||||
profiles: make(map[string]Profile),
|
||||
variables: make(map[string]string),
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user