Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultPath ¶
func DefaultPath() string
DefaultPath returns the config file location, respecting XDG_CONFIG_HOME.
Types ¶
type Config ¶
type Config struct {
Dotfiles DotfilesConfig `toml:"dotfiles"`
Plugins PluginsConfig `toml:"plugins"`
Workspace WorkspaceConfig `toml:"workspace"`
}
Config holds user-level crib settings from ~/.config/crib/config.toml.
type CribRC ¶ added in v0.9.0
type CribRC struct {
// Config sets the devcontainer config directory (equivalent to -C/--config).
Config string `toml:"config"`
// Cache lists package cache providers. Accepts a TOML array or a
// comma-separated string for backward compatibility with the pre-TOML
// .cribrc format.
Cache StringList `toml:"cache"`
// Dotfiles overrides global dotfiles settings and carries the kill switch.
Dotfiles DotfilesRC `toml:"dotfiles"`
// Plugins disables bundled plugins for the current project.
Plugins PluginsRC `toml:"plugins"`
// Workspace is the per-project workspace section (env, mounts, run_args).
Workspace WorkspaceConfig `toml:"workspace"`
}
CribRC holds values loaded from a per-project .cribrc file.
func LoadCribRC ¶ added in v0.9.0
LoadCribRC reads a .cribrc file at the given path. Returns a zero CribRC (not an error) if the file does not exist.
The file is pre-processed before TOML decoding to coerce bare string values (the pre-TOML .cribrc format) into quoted TOML strings. This preserves backward compatibility with files written in the old format, e.g.:
cache = npm, pip, go → cache = "npm, pip, go" plugins.disable = ssh → plugins.disable = "ssh" dotfiles.repository = git@… → dotfiles.repository = "git@…"
Lines that are already valid TOML (quoted strings, arrays, inline tables, booleans) are passed through unchanged.
type DotfilesConfig ¶
type DotfilesConfig struct {
Repository string `toml:"repository"`
TargetPath string `toml:"targetPath"`
InstallCommand string `toml:"installCommand"`
}
DotfilesConfig configures dotfiles repository cloning and installation.
type DotfilesRC ¶ added in v0.9.0
type DotfilesRC struct {
Disabled bool
Repository string `toml:"repository"`
TargetPath string `toml:"targetPath"`
InstallCommand string `toml:"installCommand"`
}
DotfilesRC mirrors DotfilesConfig plus a `dotfiles = "false"` kill switch handled in UnmarshalTOML.
func (*DotfilesRC) UnmarshalTOML ¶ added in v0.9.0
func (d *DotfilesRC) UnmarshalTOML(v any) error
UnmarshalTOML accepts either a nested table (dotfiles.repository, etc.) or a legacy kill switch: the boolean `dotfiles = false` (pre-TOML .cribrc) and the quoted string `dotfiles = "false"` both set Disabled. Table decoding is delegated to the tagged struct so field names stay in one place.
type PluginsConfig ¶ added in v0.9.0
type PluginsConfig struct {
Disable []string `toml:"disable"`
DisableAll bool `toml:"disable_all"`
}
PluginsConfig disables bundled plugins globally. Disable lists specific plugins by name; DisableAll is a kill switch that skips plugin registration entirely.
type PluginsRC ¶ added in v0.9.0
type PluginsRC struct {
DisableAll bool
Disable StringList `toml:"disable"`
}
PluginsRC mirrors PluginsConfig but also honors a `plugins = "false"` kill switch handled in UnmarshalTOML.
func (*PluginsRC) UnmarshalTOML ¶ added in v0.9.0
UnmarshalTOML accepts either a nested table (plugins.disable, etc.) or a legacy kill switch: the boolean `plugins = false` (pre-TOML .cribrc) and the quoted string `plugins = "false"` both set DisableAll. Table decoding is delegated to the tagged struct so field names stay in one place.
type StringList ¶ added in v0.9.0
type StringList []string
StringList accepts either a TOML array of strings or a single comma-separated string. It trims each entry and drops empties. The comma-separated form exists for backward compatibility with the pre-TOML .cribrc format (e.g. `plugins.disable = ssh, dotfiles`).
func (*StringList) UnmarshalTOML ¶ added in v0.9.0
func (s *StringList) UnmarshalTOML(v any) error
UnmarshalTOML implements toml.Unmarshaler.