Documentation
¶
Overview ¶
Package state provides a manifest for tracking the state of generated files.
Index ¶
- Constants
- func CompareVersions(v1, v2 string) int
- type CleanupAction
- type CleanupManager
- type CleanupMode
- type CleanupOption
- type CleanupResult
- type CleanupSummary
- type FileState
- type Manifest
- type ManifestEntry
- type ManifestManager
- func (mm *ManifestManager) AddEntry(manifest *Manifest, path, templatePath string, metadata map[string]string) error
- func (mm *ManifestManager) GetEntry(manifest *Manifest, path string) (ManifestEntry, bool)
- func (mm *ManifestManager) HasChanged(manifest *Manifest, path string) (bool, error)
- func (mm *ManifestManager) ListEntries(manifest *Manifest) []ManifestEntry
- func (mm *ManifestManager) LoadManifest() (*Manifest, error)
- func (mm *ManifestManager) RemoveEntry(manifest *Manifest, path string)
- func (mm *ManifestManager) SaveManifest(manifest *Manifest) error
- type MigrationResult
- type OrphanFile
- type StateTracker
- func (st *StateTracker) GetDeletedFiles() ([]string, error)
- func (st *StateTracker) GetFileState(path string) (FileState, error)
- func (st *StateTracker) GetModifiedFiles() ([]string, error)
- func (st *StateTracker) GetOrphanedFiles() ([]string, error)
- func (st *StateTracker) GetTrackedFiles() ([]TrackedFile, error)
- func (st *StateTracker) IsFileTracked(path string) (bool, error)
- func (st *StateTracker) RefreshManifest() error
- func (st *StateTracker) TrackFile(path, templatePath string, metadata map[string]string) error
- func (st *StateTracker) UntrackFile(path string) error
- type TrackedFile
- type TrackingMode
- type VersionInfo
- type VersionManager
- func (vm *VersionManager) CleanupOldBackups(keepCount int) error
- func (vm *VersionManager) GetManifestVersion(manifest *Manifest) string
- func (vm *VersionManager) GetVersionInfo() (*VersionInfo, error)
- func (vm *VersionManager) IsVersionSupported(version string) bool
- func (vm *VersionManager) ListBackups() ([]string, error)
- func (vm *VersionManager) MigrateManifest(manifest *Manifest) (*MigrationResult, error)
- func (vm *VersionManager) RequiresMigration(manifest *Manifest) bool
- func (vm *VersionManager) RestoreBackup(backupName string) error
- func (vm *VersionManager) ValidateManifest(manifest *Manifest) error
Constants ¶
View Source
const ( CurrentManifestVersion = "1.0" ManifestVersionKey = "version" )
Variables ¶
This section is empty.
Functions ¶
func CompareVersions ¶
Types ¶
type CleanupAction ¶
type CleanupAction int
const ( CleanupActionDelete CleanupAction = iota CleanupActionSkip CleanupActionBackup )
func (CleanupAction) String ¶
func (ca CleanupAction) String() string
type CleanupManager ¶
type CleanupManager struct {
// contains filtered or unexported fields
}
func NewCleanupManager ¶
func NewCleanupManager(stateTracker *StateTracker, opts ...CleanupOption) *CleanupManager
func (*CleanupManager) CleanupOrphans ¶
func (cm *CleanupManager) CleanupOrphans() (*CleanupSummary, error)
func (*CleanupManager) FindOrphans ¶
func (cm *CleanupManager) FindOrphans() ([]OrphanFile, error)
func (*CleanupManager) GetOrphanReport ¶
func (cm *CleanupManager) GetOrphanReport() (string, error)
func (*CleanupManager) PrintSummary ¶
func (cm *CleanupManager) PrintSummary(summary *CleanupSummary)
type CleanupMode ¶
type CleanupMode int
const ( CleanupModeAuto CleanupMode = iota CleanupModeInteractive CleanupModeReport CleanupModeDisabled )
func (CleanupMode) String ¶
func (cm CleanupMode) String() string
type CleanupOption ¶
type CleanupOption func(*CleanupManager)
func WithBackupDirectory ¶
func WithBackupDirectory(dir string) CleanupOption
func WithCleanupMode ¶
func WithCleanupMode(mode CleanupMode) CleanupOption
func WithIgnorePatterns ¶
func WithIgnorePatterns(patterns []string) CleanupOption
type CleanupResult ¶
type CleanupResult struct {
Action CleanupAction `json:"action"`
File OrphanFile `json:"file"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
BackupPath string `json:"backup_path,omitempty"`
}
type CleanupSummary ¶
type CleanupSummary struct {
Mode CleanupMode `json:"mode"`
OrphansFound int `json:"orphans_found"`
FilesDeleted int `json:"files_deleted"`
FilesSkipped int `json:"files_skipped"`
FilesBackedUp int `json:"files_backed_up"`
Errors int `json:"errors"`
Results []CleanupResult `json:"results"`
TotalSizeFreed int64 `json:"total_size_freed"`
ExecutionTime time.Duration `json:"execution_time"`
}
type ManifestEntry ¶
type ManifestManager ¶
type ManifestManager struct {
// contains filtered or unexported fields
}
func NewManifestManager ¶
func NewManifestManager(outputRoot string) *ManifestManager
func (*ManifestManager) GetEntry ¶
func (mm *ManifestManager) GetEntry(manifest *Manifest, path string) (ManifestEntry, bool)
func (*ManifestManager) HasChanged ¶
func (mm *ManifestManager) HasChanged(manifest *Manifest, path string) (bool, error)
func (*ManifestManager) ListEntries ¶
func (mm *ManifestManager) ListEntries(manifest *Manifest) []ManifestEntry
func (*ManifestManager) LoadManifest ¶
func (mm *ManifestManager) LoadManifest() (*Manifest, error)
func (*ManifestManager) RemoveEntry ¶
func (mm *ManifestManager) RemoveEntry(manifest *Manifest, path string)
func (*ManifestManager) SaveManifest ¶
func (mm *ManifestManager) SaveManifest(manifest *Manifest) error
type MigrationResult ¶
type OrphanFile ¶
type StateTracker ¶
type StateTracker struct {
// contains filtered or unexported fields
}
func NewStateTracker ¶
func NewStateTracker(outputRoot string, mode TrackingMode) *StateTracker
func (*StateTracker) GetDeletedFiles ¶
func (st *StateTracker) GetDeletedFiles() ([]string, error)
func (*StateTracker) GetFileState ¶
func (st *StateTracker) GetFileState(path string) (FileState, error)
func (*StateTracker) GetModifiedFiles ¶
func (st *StateTracker) GetModifiedFiles() ([]string, error)
func (*StateTracker) GetOrphanedFiles ¶
func (st *StateTracker) GetOrphanedFiles() ([]string, error)
func (*StateTracker) GetTrackedFiles ¶
func (st *StateTracker) GetTrackedFiles() ([]TrackedFile, error)
func (*StateTracker) IsFileTracked ¶
func (st *StateTracker) IsFileTracked(path string) (bool, error)
func (*StateTracker) RefreshManifest ¶
func (st *StateTracker) RefreshManifest() error
func (*StateTracker) TrackFile ¶
func (st *StateTracker) TrackFile(path, templatePath string, metadata map[string]string) error
func (*StateTracker) UntrackFile ¶
func (st *StateTracker) UntrackFile(path string) error
type TrackedFile ¶
type TrackingMode ¶
type TrackingMode int
const ( TrackingModeDisabled TrackingMode = iota TrackingModeEnabled TrackingModeStrict )
type VersionInfo ¶
type VersionManager ¶
type VersionManager struct {
// contains filtered or unexported fields
}
func NewVersionManager ¶
func NewVersionManager(outputRoot, backupDir string) *VersionManager
func (*VersionManager) CleanupOldBackups ¶
func (vm *VersionManager) CleanupOldBackups(keepCount int) error
func (*VersionManager) GetManifestVersion ¶
func (vm *VersionManager) GetManifestVersion(manifest *Manifest) string
func (*VersionManager) GetVersionInfo ¶
func (vm *VersionManager) GetVersionInfo() (*VersionInfo, error)
func (*VersionManager) IsVersionSupported ¶
func (vm *VersionManager) IsVersionSupported(version string) bool
func (*VersionManager) ListBackups ¶
func (vm *VersionManager) ListBackups() ([]string, error)
func (*VersionManager) MigrateManifest ¶
func (vm *VersionManager) MigrateManifest(manifest *Manifest) (*MigrationResult, error)
func (*VersionManager) RequiresMigration ¶
func (vm *VersionManager) RequiresMigration(manifest *Manifest) bool
func (*VersionManager) RestoreBackup ¶
func (vm *VersionManager) RestoreBackup(backupName string) error
func (*VersionManager) ValidateManifest ¶
func (vm *VersionManager) ValidateManifest(manifest *Manifest) error
Click to show internal directories.
Click to hide internal directories.