Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DefaultExecutor ¶
type DefaultExecutor struct {
// contains filtered or unexported fields
}
DefaultExecutor is the real implementation of Snapraid that shells out.
func (*DefaultExecutor) Diff ¶
func (d *DefaultExecutor) Diff() ([]string, error)
Diff shells out to `snapraid diff`, logs under "diff", and returns all stdout lines. Diff shells out to `snapraid diff`, logs under "diff", and returns all stdout lines.
func (*DefaultExecutor) Scrub ¶
func (d *DefaultExecutor) Scrub() error
Scrub shells out to `snapraid scrub --plan X --older-than Y` under "scrub".
func (*DefaultExecutor) Smart ¶
func (d *DefaultExecutor) Smart() error
Smart shells out to `snapraid smart` and logs each line under "smart".
func (*DefaultExecutor) Sync ¶
func (d *DefaultExecutor) Sync() error
Sync shells out to `snapraid sync` and logs each line under "sync".
func (*DefaultExecutor) Touch ¶
func (d *DefaultExecutor) Touch() error
Touch shells out to `snapraid touch` and logs each line under "touch".
type DiffResult ¶
type DiffResult struct { Equal int `json:"equal"` // number of files that were equal Added []string `json:"added_files,omitempty"` // list of paths for newly added files Removed []string `json:"removed_files,omitempty"` // list of paths for removed files Updated []string `json:"updated_files,omitempty"` // list of paths for updated files Moved []string `json:"moved_files,omitempty"` // list of paths for moved files Copied []string `json:"copied_files,omitempty"` // list of paths for copied files Restored []string `json:"restored_files,omitempty"` // list of paths for restored files }
DiffResult holds parsed SnapRAID diff summary and file paths for each change type.
func (DiffResult) HasChanges ¶
func (d DiffResult) HasChanges() bool
HasChanges returns true if any files were added, removed, updated, moved, copied, or restored.
type RunResult ¶
type RunResult struct { Timestamp string `json:"timestamp"` // RFC3339 timestamp when run started Result DiffResult `json:"result"` // parsed diff summary + file lists Timings RunTimings `json:"timings"` // per-step durations + total Error error `json:"error,omitempty"` // any error that occurred }
RunResult holds the summary of a completed run.
func (RunResult) HasChanges ¶
HasChanges returns true if any files were added/removed/updated/moved/copied/restored.
type RunTimings ¶
type RunTimings struct { Touch time.Duration `json:"touch"` Diff time.Duration `json:"diff"` Sync time.Duration `json:"sync"` Scrub time.Duration `json:"scrub"` Smart time.Duration `json:"smart"` Total time.Duration `json:"total"` }
RunTimings captures the duration of each subcommand and the total.
type Runner ¶
type Runner struct { Steps Steps // which subcommands to run: Touch, Scrub, Smart Thresholds Thresholds // numeric limits per change type DryRun bool // if true, skip sync/scrub/smart Logger *slog.Logger // structured logger for real‐time output Timestamp time.Time // UTC time when Runner was created // contains filtered or unexported fields }
Runner coordinates a full SnapRAID workflow based on its configuration.
type Snapraid ¶
type Snapraid interface { Touch() error // Touch runs `snapraid touch` Diff() ([]string, error) // Diff runs `snapraid diff` and returns all output lines Sync() error // Sync runs `snapraid sync` Scrub() error // Scrub runs `snapraid scrub` with plan/older‐than flags Smart() error // Smart runs `snapraid smart` }
Snapraid defines the five low‐level subcommand methods.
type Steps ¶
type Steps struct { Touch bool // Touch enables the "snapraid touch" step. Scrub bool // Scrub enables the "snapraid scrub" step. Smart bool // Smart enables the "snapraid smart" step. }
Steps defines which SnapRAID subcommands to run.
type Thresholds ¶
type Thresholds struct { Add int // Add is the maximum number of added files allowed. –1 disables. Remove int // Remove is the maximum number of removed files allowed. –1 disables. Update int // Update is the maximum number of updated files allowed. –1 disables. Move int // Move is the maximum number of moved files allowed. –1 disables. Copy int // Copy is the maximum number of copied files allowed. –1 disables. Restore int // Restore is the maximum number of restored files allowed. –1 disables. }
Thresholds defines numeric limits on detected file changes before blocking sync.