fix(config): make load_image configurable
This commit is contained in:
parent
0df050ff2e
commit
83c93619be
3 changed files with 36 additions and 0 deletions
|
|
@ -997,6 +997,7 @@ type ToolsConfig struct {
|
||||||
I2C ToolConfig `json:"i2c" yaml:"-" envPrefix:"PICOCLAW_TOOLS_I2C_"`
|
I2C ToolConfig `json:"i2c" yaml:"-" envPrefix:"PICOCLAW_TOOLS_I2C_"`
|
||||||
InstallSkill ToolConfig `json:"install_skill" yaml:"-" envPrefix:"PICOCLAW_TOOLS_INSTALL_SKILL_"`
|
InstallSkill ToolConfig `json:"install_skill" yaml:"-" envPrefix:"PICOCLAW_TOOLS_INSTALL_SKILL_"`
|
||||||
ListDir ToolConfig `json:"list_dir" yaml:"-" envPrefix:"PICOCLAW_TOOLS_LIST_DIR_"`
|
ListDir ToolConfig `json:"list_dir" yaml:"-" envPrefix:"PICOCLAW_TOOLS_LIST_DIR_"`
|
||||||
|
LoadImage ToolConfig `json:"load_image" yaml:"-" envPrefix:"PICOCLAW_TOOLS_LOAD_IMAGE_"`
|
||||||
Message ToolConfig `json:"message" yaml:"-" envPrefix:"PICOCLAW_TOOLS_MESSAGE_"`
|
Message ToolConfig `json:"message" yaml:"-" envPrefix:"PICOCLAW_TOOLS_MESSAGE_"`
|
||||||
ReadFile ReadFileToolConfig `json:"read_file" yaml:"-" envPrefix:"PICOCLAW_TOOLS_READ_FILE_"`
|
ReadFile ReadFileToolConfig `json:"read_file" yaml:"-" envPrefix:"PICOCLAW_TOOLS_READ_FILE_"`
|
||||||
Serial ToolConfig `json:"serial" yaml:"-" envPrefix:"PICOCLAW_TOOLS_SERIAL_"`
|
Serial ToolConfig `json:"serial" yaml:"-" envPrefix:"PICOCLAW_TOOLS_SERIAL_"`
|
||||||
|
|
@ -1727,6 +1728,8 @@ func (t *ToolsConfig) IsToolEnabled(name string) bool {
|
||||||
return t.InstallSkill.Enabled
|
return t.InstallSkill.Enabled
|
||||||
case "list_dir":
|
case "list_dir":
|
||||||
return t.ListDir.Enabled
|
return t.ListDir.Enabled
|
||||||
|
case "load_image":
|
||||||
|
return t.LoadImage.Enabled
|
||||||
case "message":
|
case "message":
|
||||||
return t.Message.Enabled
|
return t.Message.Enabled
|
||||||
case "read_file":
|
case "read_file":
|
||||||
|
|
|
||||||
|
|
@ -1247,6 +1247,36 @@ func TestDefaultConfig_FilterMinLength(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDefaultConfig_LoadImageEnabled(t *testing.T) {
|
||||||
|
cfg := DefaultConfig()
|
||||||
|
if !cfg.Tools.LoadImage.Enabled {
|
||||||
|
t.Fatal("DefaultConfig().Tools.LoadImage.Enabled should be true")
|
||||||
|
}
|
||||||
|
if !cfg.Tools.IsToolEnabled("load_image") {
|
||||||
|
t.Fatal("DefaultConfig().Tools.IsToolEnabled(load_image) should be true")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLoadConfig_LoadImageCanBeDisabled(t *testing.T) {
|
||||||
|
dir := t.TempDir()
|
||||||
|
configPath := filepath.Join(dir, "config.json")
|
||||||
|
raw := "{\n \"version\": 2,\n \"tools\": {\n \"load_image\": {\n \"enabled\": false\n }\n }\n}\n"
|
||||||
|
if err := os.WriteFile(configPath, []byte(raw), 0o600); err != nil {
|
||||||
|
t.Fatalf("WriteFile() error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg, err := LoadConfig(configPath)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("LoadConfig() error: %v", err)
|
||||||
|
}
|
||||||
|
if cfg.Tools.LoadImage.Enabled {
|
||||||
|
t.Fatal("LoadConfig().Tools.LoadImage.Enabled should be false")
|
||||||
|
}
|
||||||
|
if cfg.Tools.IsToolEnabled("load_image") {
|
||||||
|
t.Fatal("LoadConfig().Tools.IsToolEnabled(load_image) should be false")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestToolsConfig_GetFilterMinLength(t *testing.T) {
|
func TestToolsConfig_GetFilterMinLength(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|
|
||||||
|
|
@ -444,6 +444,9 @@ func DefaultConfig() *Config {
|
||||||
ListDir: ToolConfig{
|
ListDir: ToolConfig{
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
},
|
},
|
||||||
|
LoadImage: ToolConfig{
|
||||||
|
Enabled: true,
|
||||||
|
},
|
||||||
Message: ToolConfig{
|
Message: ToolConfig{
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue