Skip to content

Commit

Permalink
feat: port is not allowed in extra_args
Browse files Browse the repository at this point in the history
  • Loading branch information
devsunb committed Dec 22, 2024
1 parent 7d132ce commit c998224
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
25 changes: 18 additions & 7 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ type preset struct {
TcpPort *int `toml:"tcp_port"`
LayerIcons map[string]string `toml:"layer_icons"`
Hooks *hooks `toml:"hooks"`
ExtraArgs []string `toml:"extra_args"`
ExtraArgs extraArgs `toml:"extra_args"`
}

func (p *preset) applyDefaults(defaults *preset) {
Expand All @@ -109,11 +109,7 @@ func (p *preset) applyDefaults(defaults *preset) {
p.Hooks = defaults.Hooks
}
if p.ExtraArgs == nil {
if defaults.ExtraArgs == nil {
p.ExtraArgs = []string{}
} else {
p.ExtraArgs = defaults.ExtraArgs
}
p.ExtraArgs = defaults.ExtraArgs
}
}

Expand Down Expand Up @@ -142,7 +138,11 @@ func (p *preset) intoExported() (*Preset, error) {
result.Hooks = *x
}
if p.ExtraArgs != nil {
result.ExtraArgs = p.ExtraArgs
x, err := p.ExtraArgs.intoExported()
if err != nil {
return nil, err
}
result.ExtraArgs = x
}
return result, nil
}
Expand Down Expand Up @@ -180,6 +180,17 @@ func (p *hooks) intoExported() (*Hooks, error) {
}, nil
}

type extraArgs []string

func (e extraArgs) intoExported() ([]string, error) {
for _, s := range e {
if strings.HasPrefix(s, "--port") || strings.HasPrefix(s, "-p") {
return nil, fmt.Errorf("port argument is not allowed in extra_args, use tcp_port instead")
}
}
return e, nil
}

func ReadConfigOrCreateIfNotExist(configFilePath string) (*Config, error) {
var cfg *config = &config{}
// Golang map don't keep track of insertion order, so we need to get the
Expand Down
2 changes: 1 addition & 1 deletion doc/config_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
"items": {
"type": "string"
},
"description": "You may pass extra arguments to kanata such as --nodelay, additional --cfg params, etc."
"description": "You may pass extra arguments to kanata except for the port (use tcp_port instead), such as --nodelay, additional --cfg params, etc."
}
},
"additionalProperties": false,
Expand Down

0 comments on commit c998224

Please sign in to comment.