Documentation
¶
Index ¶
- Constants
- func InitNixyFile(ctx context.Context, dest string) error
- func ProfileCreate(ctx context.Context, name string) error
- func ProfileEdit(ctx context.Context, name string) error
- func ProfileList(ctx context.Context) ([]string, error)
- func XDGDataDir() string
- type Build
- type Context
- type Executor
- type ExecutorArgs
- type ExecutorEnvVars
- type ExecutorMountPath
- type Nix
- type NixPackage
- type NormalizedPackage
- type Profile
- type ShellContext
- type URLPackage
- type WorkspaceFlakeGenParams
Constants ¶
View Source
const ( ShellHookFileName = "shell-hook.sh" BuildHookFileName = "build-hook.sh" )
Variables ¶
This section is empty.
Functions ¶
func ProfileCreate ¶
ProfileCreate creates a new profile with the given name
func ProfileEdit ¶
ProfileEdit opens the profile's flake.nix in the user's editor
func ProfileList ¶
ProfileList returns all available profiles
func XDGDataDir ¶
func XDGDataDir() string
Types ¶
type Build ¶ added in v1.2.1
type Build struct {
Packages []*NormalizedPackage `yaml:"packages"`
Paths []string `yaml:"paths"`
}
type ExecutorArgs ¶ added in v1.2.1
type ExecutorArgs struct {
PWD string
NixBinaryMountedPath string
ProfileDirMountedPath string
FakeHomeMountedPath string
NixDirMountedPath string
WorkspaceFlakeDirHostPath string
WorkspaceFlakeDirMountedPath string
EnvVars ExecutorEnvVars
}
func UseBubbleWrap ¶
func UseBubbleWrap(profile *Profile) (*ExecutorArgs, error)
func UseDocker ¶
func UseDocker(profile *Profile) (*ExecutorArgs, error)
func UseLocal ¶ added in v1.2.1
func UseLocal(profile *Profile) (*ExecutorArgs, error)
type ExecutorEnvVars ¶ added in v1.2.1
type ExecutorEnvVars struct {
User string `json:"USER"`
Home string `json:"HOME"`
Term string `json:"TERM"`
TermInfo string `json:"TERMINFO"`
Path []string `json:"PATH"`
XDGSessionType string `json:"XDG_SESSION_TYPE"`
XDGCacheHome string `json:"XDG_CACHE_HOME"`
XDGDataHome string `json:"XDG_DATA_HOME"`
NixyOS string `json:"NIXY_OS"`
// NIXY_ARCH has value like "amd64" or "arm64"
NixyArch string `json:"NIXY_ARCH"`
// NIXY_ARCH_FULL has value like "x86_64"
NixyArchFull string `json:"NIXY_ARCH_FULL"`
NixyShell string `json:"NIXY_SHELL"`
NixyWorkspaceDir string `json:"NIXY_WORKSPACE_DIR"`
NixyWorkspaceFlakeDir string `json:"NIXY_WORKSPACE_FLAKE_DIR"`
NixyBuildHook string `json:"NIXY_BUILD_HOOK"`
NixConfDir string `json:"NIX_CONF_DIR"`
}
func (*ExecutorEnvVars) ToEnviron ¶ added in v1.2.1
func (e *ExecutorEnvVars) ToEnviron() []string
type ExecutorMountPath ¶ added in v1.2.1
type Nix ¶
type Nix struct {
NixyVersion string `yaml:"-"`
ConfigFile *string `yaml:"-"`
sync.Mutex `yaml:"-"`
Logger *slog.Logger `yaml:"-"`
NixPkgs string `yaml:"nixpkgs"`
Packages []*NormalizedPackage `yaml:"packages"`
Libraries []string `yaml:"libraries,omitempty"`
Env map[string]string `yaml:"env,omitempty"`
ShellHook string `yaml:"shellHook,omitempty"`
Builds map[string]Build `yaml:"builds,omitempty"`
// contains filtered or unexported fields
}
func (*Nix) PrepareShellCommand ¶
func (*Nix) SyncToDisk ¶
type NixPackage ¶ added in v1.1.0
type NormalizedPackage ¶ added in v1.1.0
type NormalizedPackage struct {
*NixPackage
*URLPackage
}
func (*NormalizedPackage) MarshalYAML ¶ added in v1.1.0
func (p *NormalizedPackage) MarshalYAML() (any, error)
func (*NormalizedPackage) UnmarshalYAML ¶ added in v1.1.0
func (p *NormalizedPackage) UnmarshalYAML(value *yaml.Node) error
type Profile ¶
type Profile struct {
Name string
NixPkgsCommitHash string `json:"nixpkgs,omitempty"`
ProfilePath string // ~/.local/share/nixy/profiles/<name>
FakeHomeDir string
WorkspacesDir string
NixDir string
StaticNixBinPath string // Path for static nix binary
ProfileNixyYAMLPath string
}
Profile represents a general profile that all executors can use
func GetProfile ¶
func NewProfile ¶
NewProfile creates a new profile instance
func (*Profile) CreateDirs ¶
CreateDirs creates the necessary directories for the profile
type URLPackage ¶ added in v1.1.0
type WorkspaceFlakeGenParams ¶ added in v1.2.4
Source Files
¶
Click to show internal directories.
Click to hide internal directories.