Documentation
¶
Index ¶
- Constants
- func ValidateNixpkg(cfg *ConfigFile) error
- type ConfigFile
- func (c *ConfigFile) Bytes() []byte
- func (c *ConfigFile) Equals(other *ConfigFile) bool
- func (c *ConfigFile) GetPackage(versionedName string) (*Package, bool)
- func (c *ConfigFile) Hash() (string, error)
- func (c *ConfigFile) InitHook() *shellcmd.Commands
- func (c *ConfigFile) IsEnvsecEnabled() bool
- func (c *ConfigFile) IsdotEnvEnabled() bool
- func (c *ConfigFile) NixPkgsCommitHash() string
- func (c *ConfigFile) ParseEnvsFromDotEnv() (map[string]string, error)
- func (c *ConfigFile) SaveTo(path string) error
- func (c *ConfigFile) Scripts() Scripts
- func (c *ConfigFile) SetStringField(fieldName, val string)
- func (c *ConfigFile) TopLevelPackages() []Package
- type NixpkgsConfig
- type Package
- type PackagesMutator
- func (pkgs *PackagesMutator) Add(versionedName string)
- func (pkgs *PackagesMutator) AddPlatforms(writer io.Writer, versionedname string, platforms []string) error
- func (pkgs *PackagesMutator) ExcludePlatforms(writer io.Writer, versionedName string, platforms []string) error
- func (pkgs *PackagesMutator) Remove(versionedName string)
- func (pkgs *PackagesMutator) SetAllowInsecure(writer io.Writer, versionedName string, whitelist []string) error
- func (pkgs *PackagesMutator) SetDisablePlugin(versionedName string, v bool) error
- func (pkgs *PackagesMutator) SetOutputs(writer io.Writer, versionedName string, outputs []string) error
- func (pkgs *PackagesMutator) SetPatchGLibc(versionedName string, v bool) error
- func (pkgs *PackagesMutator) UnmarshalJSON(data []byte) error
- type Scripts
- type Stage
Constants ¶
const (
DefaultName = "codex.json"
)
Variables ¶
This section is empty.
Functions ¶
func ValidateNixpkg ¶
func ValidateNixpkg(cfg *ConfigFile) error
Types ¶
type ConfigFile ¶
type ConfigFile struct {
// AbsRootPath is the absolute path to the codex.json or plugin.json file
// it will not be set for github plugins.
AbsRootPath string `json:"-"`
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
// PackagesMutator is the slice of Nix packages that codex makes available in
// its environment. Deliberately do not omitempty.
PackagesMutator PackagesMutator `json:"packages"`
// Env allows specifying env variables
Env map[string]string `json:"env,omitempty"`
// Only allows "envsec" for now
EnvFrom string `json:"env_from,omitempty"`
// Shell configures the codex shell environment.
Shell *shellConfig `json:"shell,omitempty"`
// Nixpkgs specifies the repository to pull packages from
// Deprecated: Versioned packages don't need this
Nixpkgs *NixpkgsConfig `json:"nixpkgs,omitempty"`
// Reserved to allow including other config files. Proposed format is:
// path: for local files
// https:// for remote files
// plugin: for built-in plugins
// This is a similar format to nix inputs
Include []string `json:"include,omitempty"`
// contains filtered or unexported fields
}
ConfigFile defines a codex environment as JSON.
func LoadBytes ¶
func LoadBytes(b []byte) (*ConfigFile, error)
func (*ConfigFile) Bytes ¶
func (c *ConfigFile) Bytes() []byte
func (*ConfigFile) Equals ¶
func (c *ConfigFile) Equals(other *ConfigFile) bool
func (*ConfigFile) GetPackage ¶
func (c *ConfigFile) GetPackage(versionedName string) (*Package, bool)
Get returns the package with the given versionedName
func (*ConfigFile) Hash ¶
func (c *ConfigFile) Hash() (string, error)
func (*ConfigFile) InitHook ¶
func (c *ConfigFile) InitHook() *shellcmd.Commands
func (*ConfigFile) IsEnvsecEnabled ¶
func (c *ConfigFile) IsEnvsecEnabled() bool
func (*ConfigFile) IsdotEnvEnabled ¶
func (c *ConfigFile) IsdotEnvEnabled() bool
func (*ConfigFile) NixPkgsCommitHash ¶
func (c *ConfigFile) NixPkgsCommitHash() string
func (*ConfigFile) ParseEnvsFromDotEnv ¶
func (c *ConfigFile) ParseEnvsFromDotEnv() (map[string]string, error)
func (*ConfigFile) SaveTo ¶
func (c *ConfigFile) SaveTo(path string) error
SaveTo writes the config to a file.
func (*ConfigFile) Scripts ¶
func (c *ConfigFile) Scripts() Scripts
func (*ConfigFile) SetStringField ¶
func (c *ConfigFile) SetStringField(fieldName, val string)
func (*ConfigFile) TopLevelPackages ¶
func (c *ConfigFile) TopLevelPackages() []Package
TopLevelPackages returns the packages in the config file, but not the included ones. Semi-awkwardly named to avoid confusion with the Packages method on Config.
type NixpkgsConfig ¶
type NixpkgsConfig struct {
Commit string `json:"commit,omitempty"`
}
type Package ¶
type Package struct {
Name string
Version string `json:"version,omitempty"`
DisablePlugin bool `json:"disable_plugin,omitempty"`
Platforms []string `json:"platforms,omitempty"`
ExcludedPlatforms []string `json:"excluded_platforms,omitempty"`
// PatchGlibc applies a function to the package's derivation that
// patches any ELF binaries to use the latest version of nixpkgs#glibc.
PatchGlibc bool `json:"patch_glibc,omitempty"`
// Outputs is the list of outputs to use for this package, assuming
// it is a nix package. If empty, the default output is used.
Outputs []string `json:"outputs,omitempty"`
// AllowInsecure is a whitelist of packages that may be marked insecure
// in nixpkgs, but are allowed by the user to be installed.
AllowInsecure []string `json:"allow_insecure,omitempty"`
}
func NewVersionOnlyPackage ¶
func (*Package) IsEnabledOnPlatform ¶
enabledOnPlatform returns whether the package is enabled on the given platform. If the package has a list of platforms, it is enabled only on those platforms. If the package has a list of excluded platforms, it is enabled on all platforms except those.
func (*Package) UnmarshalJSON ¶
func (*Package) VersionedName ¶
type PackagesMutator ¶
type PackagesMutator struct {
// contains filtered or unexported fields
}
func (*PackagesMutator) Add ¶
func (pkgs *PackagesMutator) Add(versionedName string)
Add adds a package to the list of packages
func (*PackagesMutator) AddPlatforms ¶
func (pkgs *PackagesMutator) AddPlatforms(writer io.Writer, versionedname string, platforms []string) error
AddPlatforms adds a platform to the list of platforms for a given package
func (*PackagesMutator) ExcludePlatforms ¶
func (pkgs *PackagesMutator) ExcludePlatforms(writer io.Writer, versionedName string, platforms []string) error
ExcludePlatforms adds a platform to the list of excluded platforms for a given package
func (*PackagesMutator) Remove ¶
func (pkgs *PackagesMutator) Remove(versionedName string)
Remove removes a package from the list of packages
func (*PackagesMutator) SetAllowInsecure ¶
func (*PackagesMutator) SetDisablePlugin ¶
func (pkgs *PackagesMutator) SetDisablePlugin(versionedName string, v bool) error
func (*PackagesMutator) SetOutputs ¶
func (*PackagesMutator) SetPatchGLibc ¶
func (pkgs *PackagesMutator) SetPatchGLibc(versionedName string, v bool) error
func (*PackagesMutator) UnmarshalJSON ¶
func (pkgs *PackagesMutator) UnmarshalJSON(data []byte) error