resolve

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 29, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package resolve merges profile layers into an execution plan.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Fingerprint

func Fingerprint(p *profile.Profile, f *facts.Facts) string

Fingerprint returns a stable, human-readable string that identifies the current selection and the facts that produced it.

Types

type DotfileEntry

type DotfileEntry struct {
	Target string
	Source string
	Mode   string
	Module string
	Layer  string
	Scope  string
}

DotfileEntry is a single resolved dotfile target.

type DotfilesStep

type DotfilesStep struct {
	Entries []DotfileEntry
}

DotfilesStep lists managed dotfile entries.

type HooksStep

type HooksStep struct {
	Pre  []string
	Post []string
}

HooksStep lists the pre/post apply hook commands aggregated across all selected modules. Hooks are ordered sequences: per module the layers append base → host → user, and modules aggregate in selection order.

type MountEntry added in v0.2.0

type MountEntry struct {
	Name   string
	Spec   profile.MountSpec
	Module string
	Layer  string
	Scope  string
}

MountEntry is a single resolved mount: the winning layer's MountSpec plus the provenance (module, winning layer, module scope) the apply steps need.

type MountsStep added in v0.2.0

type MountsStep struct {
	Entries []MountEntry
}

MountsStep is the plan aggregate of mount entries across all selected modules, sorted by (Module, Name) for deterministic output.

type PackagesStep

type PackagesStep struct {
	Install []string
	Remove  []string
}

PackagesStep lists packages that should be present or removed from the system.

type Plan

type Plan struct {
	Packages PackagesStep
	Tools    ToolsStep
	Dotfiles DotfilesStep
	Hooks    HooksStep
	Mounts   MountsStep
	Smb      SmbStep
}

Plan is the resolved, side-effect-free execution plan for a profile.

func Resolve

func Resolve(p *profile.Profile, f *facts.Facts) (*Plan, error)

Resolve builds a Plan by merging base, host, and user overlays for each selected module. Precedence is user > host > base.

type SmbModuleSpec added in v0.2.0

type SmbModuleSpec struct {
	Module string
	Spec   profile.SmbSpec
}

SmbModuleSpec is one contributing module's merged smb spec. Modules lists which module contributed; the spec itself carries group/users/avahi and the merged shares. Sorted by Module for deterministic output.

type SmbStep added in v0.2.0

type SmbStep struct {
	Modules []SmbModuleSpec
}

SmbStep aggregates each contributing module's merged smb spec. A module with no [smb] content in any layer contributes nothing.

type ToolsStep

type ToolsStep struct {
	Versions map[string]string
}

ToolsStep lists required tool versions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL