Documentation
¶
Index ¶
- Constants
- func GetCurrentNixyProfile() string
- 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
- func (n *Nix) Build(ctx context.Context, target string) error
- func (n *Nix) GenerateWorkspaceFlakeParams() (*WorkspaceFlakeParams, error)
- func (nix *Nix) PrepareShellCommand(ctx context.Context, command string, args ...string) (*exec.Cmd, error)
- func (n *Nix) Shell(ctx context.Context, program string) error
- func (n *Nix) SyncToDisk() error
- type NixPackage
- type NormalizedPackage
- type Profile
- type ProfileFlakeParams
- type ShellContext
- type URLPackage
- type WorkspaceFlakePackgeBuild
- type WorkspaceFlakeParams
Constants ¶
View Source
const ( ShellHookFileName = "shell-hook.sh" BuildHookFileName = "build-hook.sh" )
Variables ¶
This section is empty.
Functions ¶
func GetCurrentNixyProfile ¶
func GetCurrentNixyProfile() string
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 Executor ¶
type Executor string
func GetCurrentNixyExecutor ¶
func GetCurrentNixyExecutor() Executor
type ExecutorArgs ¶ added in v1.2.1
type ExecutorArgs struct {
PWD string
NixBinaryMountedPath string
ProfileFlakeDirMountedPath 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"`
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 {
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) GenerateWorkspaceFlakeParams ¶ added in v1.1.0
func (n *Nix) GenerateWorkspaceFlakeParams() (*WorkspaceFlakeParams, error)
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>
ProfileFlakeDir string
FakeHomeDir string
WorkspacesDir string
NixDir string
StaticNixBinPath string // Path for static nix binary
}
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 ProfileFlakeParams ¶ added in v1.1.0
type ProfileFlakeParams struct {
NixPkgsCommit string
}
type URLPackage ¶ added in v1.1.0
type WorkspaceFlakePackgeBuild ¶ added in v1.2.1
type WorkspaceFlakeParams ¶ added in v1.1.0
type WorkspaceFlakeParams struct {
NixPkgsDefaultCommit string
NixPkgsCommits []string
PackagesMap map[string][]string
LibrariesMap map[string][]string
URLPackages []URLPackage
WorkspaceDir string
Builds map[string]WorkspaceFlakePackgeBuild
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.