Documentation
¶
Index ¶
- Variables
- func InitNixyFile(parent 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 ExecutorArgs
- type ExecutorMountPath
- type InShellNixy
- type Mode
- type NixPackage
- type NixPkgsMap
- type Nixy
- type NixyConfig
- type NixyHostDataStore
- type NixyMount
- type NormalizedPackage
- type Profile
- type URLPackage
- type WorkspaceFlakeGenParams
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ProfileSandboxMountPath = "/profile" WorkspaceDirSandboxMountPath = "/workspace" WorkspaceFlakeSandboxMountPath = "/workspace-flake" )
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 ¶
type Build struct {
Packages []*NormalizedPackage `yaml:"packages"`
Paths []string `yaml:"paths"`
}
type Context ¶
type Context struct {
context.Context
NixyProfile string
NixyMode Mode
NixyUseProfile bool
NixyBinPath string
InNixyShell bool
PWD string
NixyDataDir string
}
func (*Context) IsLocalMode ¶
type ExecutorArgs ¶
type ExecutorArgs struct {
NixBinaryMountedPath string
ProfileDirMountedPath string
FakeHomeMountedPath string
NixDirMountedPath string
WorkspaceFlakeDirHostPath string
WorkspaceFlakeDirMountedPath string
EnvVars executorEnvVars
}
func UseBubbleWrap ¶
func UseBubbleWrap(ctx *Context, profile *Profile) (*ExecutorArgs, error)
type ExecutorMountPath ¶
type InShellNixy ¶
type InShellNixy struct {
PWD string `yaml:"-"`
Logger *slog.Logger
NixyConfig
}
func LoadInNixyShell ¶
func LoadInNixyShell(parent context.Context) (*InShellNixy, error)
type NixPackage ¶
type NixPkgsMap ¶ added in v1.4.0
func (NixPkgsMap) DefaultCommit ¶ added in v1.4.0
func (m NixPkgsMap) DefaultCommit() string
func (NixPkgsMap) List ¶ added in v1.4.0
func (m NixPkgsMap) List() []string
type Nixy ¶
type Nixy struct {
Context *Context
ConfigFile *string
sync.Mutex `yaml:"-"`
Logger *slog.Logger `yaml:"-"`
PWD string
NixyConfig
// contains filtered or unexported fields
}
func (*Nixy) PrepareShellCommand ¶
func (*Nixy) SyncToDisk ¶
type NixyConfig ¶
type NixyConfig struct {
NixPkgs NixPkgsMap `yaml:"nixpkgs"`
Packages []*NormalizedPackage `yaml:"packages"`
Libraries []string `yaml:"libraries,omitempty"`
Env map[string]string `yaml:"env,omitempty"`
OnShellEnter string `yaml:"onShellEnter,omitempty"`
// OnShellExit is not used as of now, will try to use it in future
OnShellExit string `yaml:"onShellExit,omitempty"`
Builds map[string]Build `yaml:"builds,omitempty"`
// Mount is applicable only on bubblewrap and docker modes
Mounts []NixyMount `yaml:"mounts,omitempty"`
}
type NixyHostDataStore ¶
type NixyHostDataStore struct {
// contains filtered or unexported fields
}
func (NixyHostDataStore) ProfilePath ¶
func (n NixyHostDataStore) ProfilePath(profile string) string
type NormalizedPackage ¶
type NormalizedPackage struct {
*NixPackage
*URLPackage
}
func (*NormalizedPackage) MarshalYAML ¶
func (p *NormalizedPackage) MarshalYAML() (any, error)
func (*NormalizedPackage) UnmarshalYAML ¶
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 NewProfile ¶
NewProfile creates a new profile instance
func (*Profile) CreateDirs ¶
CreateDirs creates the necessary directories for the profile
type URLPackage ¶
type WorkspaceFlakeGenParams ¶
type WorkspaceFlakeGenParams struct {
NixPkgs NixPkgsMap
WorkspaceDirPath string
Packages []*NormalizedPackage
Libraries []string
Builds map[string]Build
EnvVars map[string]string
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.