Skip to content
internal/scanconfig
Edit
On this page

Loading and validating the optional --config TOML file: the allowed scan-semantic keys, the overlay onto command-line flags, and hard errors on overlap.

#internal/scanconfig

#internal/scanconfig

Package scanconfig loads and validates the optional TOML scan-config file selected with --config (spec §11, R41–R44). The file supplies scan-semantic defaults only; it is never auto-discovered and rendering/output options are deliberately rejected.

#AllowedKeys

Go go
var AllowedKeys = []string{

AllowedKeys is the exact set of keys a scan config file may contain (flag names with underscores), in canonical order (R42).

#Config

Go go
type Config struct

Config holds the validated values from a scan config file. Only keys present in the file are set. Values are kwargs-ready: strings, ints, and []interface{} of string for the repeatable keys.

#Load

Go go
func Load(path string) (*Config, error)

Load reads and fully validates a scan config file. Any missing or unreadable file, malformed TOML, unknown key, rendering/output key, wrong type, invalid value, or duplicate array value is an error (R41, R42).

#ExplicitKeys

Go go
func ExplicitKeys(argv []string) map[string]bool

ExplicitKeys scans raw argv for the R42 flag set and reports which config keys were explicitly passed on the command line, matching the exact token "--" or the prefix "--=" (R43). None of these flags are booleans, so no --no-* forms exist.

#Config.Has

Go go
func (c *Config) Has(key string) bool

Has reports whether the file set the given key.

#Config.Overlay

Go go
func (c *Config) Overlay(kwargs map[string]interface{})

Overlay copies every file-set value into kwargs. Keys absent from the file are left untouched (R44).

Search