Documentation ¶
Index ¶
- Constants
- type ConfigType
- type DotConfigFile
- func (cf *DotConfigFile) Clone() *DotConfigFile
- func (cf *DotConfigFile) ModToNo()
- func (cf *DotConfigFile) ModToYes()
- func (cf *DotConfigFile) Serialize() []byte
- func (cf *DotConfigFile) Set(name, val string)
- func (cf *DotConfigFile) Unset(name string)
- func (cf *DotConfigFile) Value(name string) string
- type KConfigFile
- type KConfigMenu
- type KeyValue
- type KeyValueMap
- func (kvm KeyValueMap) Override(extra ...*KeyValue) KeyValueMap
- func (kvm KeyValueMap) OverrideBy(other KeyValueMap) KeyValueMap
- func (kvm KeyValueMap) RemoveEmpty() KeyValueMap
- func (kvm KeyValueMap) Resolve(lookupFn func(string) (string, bool)) KeyValueMap
- func (kvm KeyValueMap) Set(key, value string) KeyValueMap
- func (kvm KeyValueMap) Slice() []*KeyValue
- func (kvm KeyValueMap) String() string
- func (kvm KeyValueMap) Unset(key string) KeyValueMap
- type MenuKind
Constants ¶
const ( Yes = "y" Mod = "m" No = "---===[[[is not set]]]===---" // to make it more obvious when some code writes it directly Prefix = "CONFIG_" )
const DotConfigFileName = ".config"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConfigType ¶
type ConfigType int
const ( TypeBool ConfigType TypeTristate TypeString TypeInt TypeHex )
type DotConfigFile ¶
type DotConfigFile struct { Slice []*KeyValue Map KeyValueMap // duplicates Configs for convenience // contains filtered or unexported fields }
DotConfigFile represents a parsed .config file. It should not be modified directly, only by means of calling methods. The only exception is Config.Value which may be modified directly. Note: config names don't include CONFIG_ prefix, here and in other public interfaces, users of this package should never mention CONFIG_. Use Yes/Mod/No consts to check for/set config to particular values.
func ParseConfig ¶
func ParseConfig(file string) (*DotConfigFile, error)
func ParseConfigData ¶
func ParseConfigData(data []byte, file string) (*DotConfigFile, error)
func (*DotConfigFile) Clone ¶
func (cf *DotConfigFile) Clone() *DotConfigFile
func (*DotConfigFile) ModToNo ¶
func (cf *DotConfigFile) ModToNo()
func (*DotConfigFile) ModToYes ¶
func (cf *DotConfigFile) ModToYes()
func (*DotConfigFile) Serialize ¶
func (cf *DotConfigFile) Serialize() []byte
func (*DotConfigFile) Set ¶
func (cf *DotConfigFile) Set(name, val string)
Set changes config value, or adds it if it's not yet present.
func (*DotConfigFile) Unset ¶
func (cf *DotConfigFile) Unset(name string)
Unset sets config value to No, if it's present in the config.
func (*DotConfigFile) Value ¶
func (cf *DotConfigFile) Value(name string) string
Value returns config value, or No if it's not present at all.
type KConfigFile ¶
type KConfigFile struct { Root *KConfigMenu // mainmenu Configs map[string]*KConfigMenu // only config/menuconfig entries }
KConfigFile represents a parsed Kconfig file (including includes).
type KConfigMenu ¶
type KConfigMenu struct { Kind MenuKind // config/menu/choice/etc Type ConfigType // tristate/bool/string/etc Name string // name without CONFIG_ Elems []*KConfigMenu // sub-elements for menus Parent *KConfigMenu // parent menu, non-nil for everythign except for mainmenu // contains filtered or unexported fields }
Menu represents a single hierarchical menu or config.
func (*KConfigMenu) DependsOn ¶
func (m *KConfigMenu) DependsOn() map[string]bool
DependsOn returns all transitive configs this config depends on.
func (*KConfigMenu) Prompt ¶
func (m *KConfigMenu) Prompt() string
type KeyValueMap ¶ added in v0.4.0
KeyValueMap is a map of KeyValues
func NewKeyValueMapFromMap ¶ added in v0.4.0
func NewKeyValueMapFromMap(values map[string]interface{}) KeyValueMap
NewKeyValueMapFromMap build a new Mapping from a set of KEY=VALUE strings
func NewKeyValueMapFromSlice ¶ added in v0.4.0
func NewKeyValueMapFromSlice(values ...interface{}) KeyValueMap
NewKeyValueMapFromSlice build a new Mapping from a set of KEY=VALUE strings
func (KeyValueMap) Override ¶ added in v0.4.0
func (kvm KeyValueMap) Override(extra ...*KeyValue) KeyValueMap
Override accepts a list of key value pairs and overrides the key in the map
func (KeyValueMap) OverrideBy ¶ added in v0.4.0
func (kvm KeyValueMap) OverrideBy(other KeyValueMap) KeyValueMap
OverrideBy update KeyValueMap with values from another KeyValueMap
func (KeyValueMap) RemoveEmpty ¶ added in v0.4.0
func (kvm KeyValueMap) RemoveEmpty() KeyValueMap
RemoveEmpty excludes keys that are not associated with a value
func (KeyValueMap) Resolve ¶ added in v0.4.0
func (kvm KeyValueMap) Resolve(lookupFn func(string) (string, bool)) KeyValueMap
Resolve update a KConfig for keys without value (`key`, but not `key=`)
func (KeyValueMap) Set ¶ added in v0.4.0
func (kvm KeyValueMap) Set(key, value string) KeyValueMap
Set a new key with specified value
func (KeyValueMap) Slice ¶ added in v0.4.0
func (kvm KeyValueMap) Slice() []*KeyValue
Slice returns the map as a slice
func (KeyValueMap) String ¶ added in v0.4.0
func (kvm KeyValueMap) String() string
String returns the serialized string representing a .config file
func (KeyValueMap) Unset ¶ added in v0.4.0
func (kvm KeyValueMap) Unset(key string) KeyValueMap
Unset a specific key