store

package
v1.10.0 Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxPinnedScratches = 5
)

Variables

This section is empty.

Functions

func GetScratchFilePath

func GetScratchFilePath(id string) (string, error)

func GetScratchFilePathWithConfig added in v1.2.0

func GetScratchFilePathWithConfig(id string, cfg *config.Config) (string, error)

func GetScratchPath

func GetScratchPath() (string, error)

func GetScratchPathWithConfig added in v1.2.0

func GetScratchPathWithConfig(cfg *config.Config) (string, error)

Types

type DiscoveryManager added in v1.5.3

type DiscoveryManager struct {
	// contains filtered or unexported fields
}

DiscoveryManager handles auto-discovery of orphaned scratch files

func NewDiscoveryManager added in v1.5.3

func NewDiscoveryManager(store *Store) *DiscoveryManager

NewDiscoveryManager creates a new discovery manager

func (*DiscoveryManager) DiscoverOrphanedFiles added in v1.5.3

func (dm *DiscoveryManager) DiscoverOrphanedFiles() error

DiscoverOrphanedFiles finds and indexes files without metadata

type Index added in v1.5.3

type Index struct {
	Version   string                `json:"version"`
	UpdatedAt time.Time             `json:"updated_at"`
	Scratches map[string]IndexEntry `json:"scratches"`
}

Index represents the master index structure

type IndexEntry added in v1.5.3

type IndexEntry struct {
	Project   string    `json:"project"`
	Title     string    `json:"title"`
	CreatedAt time.Time `json:"created_at"`
}

IndexEntry represents minimal scratch info for the master index

type MetadataManager added in v1.5.3

type MetadataManager struct {
	// contains filtered or unexported fields
}

MetadataManager handles individual metadata files and master index

func NewMetadataManager added in v1.5.3

func NewMetadataManager(fs filesystem.FileSystem, basePath string) *MetadataManager

NewMetadataManager creates a new metadata manager

func (*MetadataManager) DeleteScratchMetadata added in v1.5.3

func (m *MetadataManager) DeleteScratchMetadata(id string) error

DeleteScratchMetadata removes individual scratch metadata

func (*MetadataManager) GetFilesPath added in v1.5.3

func (m *MetadataManager) GetFilesPath() string

GetFilesPath returns the path to the files directory

func (*MetadataManager) GetIndexPath added in v1.5.3

func (m *MetadataManager) GetIndexPath() string

GetIndexPath returns the path to the index file

func (*MetadataManager) GetMetadataPath added in v1.5.3

func (m *MetadataManager) GetMetadataPath() string

GetMetadataPath returns the path to the metadata directory

func (*MetadataManager) Initialize added in v1.5.3

func (m *MetadataManager) Initialize() error

Initialize creates the necessary directory structure

func (*MetadataManager) LoadIndex added in v1.5.3

func (m *MetadataManager) LoadIndex() (*Index, error)

LoadIndex reads the master index

func (*MetadataManager) LoadScratchMetadata added in v1.5.3

func (m *MetadataManager) LoadScratchMetadata(id string) (*Scratch, error)

LoadScratchMetadata loads individual scratch metadata

func (*MetadataManager) MigrateFromLegacyMetadata added in v1.5.3

func (m *MetadataManager) MigrateFromLegacyMetadata(scratches []Scratch) error

MigrateFromLegacyMetadata migrates from old metadata.json to new structure

func (*MetadataManager) RebuildIndex added in v1.5.3

func (m *MetadataManager) RebuildIndex() error

RebuildIndex reconstructs the index from individual metadata files

func (*MetadataManager) RemoveIndexEntry added in v1.5.3

func (m *MetadataManager) RemoveIndexEntry(id string) error

RemoveIndexEntry removes an entry from the index

func (*MetadataManager) SaveIndex added in v1.5.3

func (m *MetadataManager) SaveIndex(index *Index) error

SaveIndex writes the master index

func (*MetadataManager) SaveScratchMetadata added in v1.5.3

func (m *MetadataManager) SaveScratchMetadata(scratch *Scratch) error

SaveScratchMetadata saves individual scratch metadata

func (*MetadataManager) UpdateIndexEntry added in v1.5.3

func (m *MetadataManager) UpdateIndexEntry(scratch *Scratch) error

UpdateIndexEntry updates or adds an entry in the index

type Scratch

type Scratch struct {
	ID        string    `json:"id"`
	Project   string    `json:"project"`
	Title     string    `json:"title"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at,omitempty"`
	Size      int64     `json:"size,omitempty"`
	Checksum  string    `json:"checksum,omitempty"`
	IsPinned  bool      `json:"is_pinned,omitempty"`
	PinnedAt  time.Time `json:"pinned_at,omitempty"`
}

type Store

type Store struct {
	// contains filtered or unexported fields
}

func NewStore

func NewStore() (*Store, error)

func NewStoreWithConfig added in v1.2.0

func NewStoreWithConfig(cfg *config.Config) (*Store, error)

func (*Store) AddScratch

func (s *Store) AddScratch(scratch Scratch) error

func (*Store) AddScratchAtomic added in v1.5.3

func (s *Store) AddScratchAtomic(scratch Scratch) error

AddScratchAtomic adds a scratch with file locking to prevent concurrent conflicts

func (*Store) GetPinnedScratches added in v1.8.0

func (s *Store) GetPinnedScratches() []Scratch

func (*Store) GetScratches

func (s *Store) GetScratches() []Scratch

func (*Store) RebuildIndex added in v1.5.3

func (s *Store) RebuildIndex() error

RebuildIndex rebuilds the master index from individual metadata files

func (*Store) RemoveScratch

func (s *Store) RemoveScratch(id string) error

func (*Store) RemoveScratchAtomic added in v1.5.3

func (s *Store) RemoveScratchAtomic(id string) error

RemoveScratchAtomic removes a scratch with file locking

func (*Store) RunDiscoveryBeforeCommand added in v1.5.3

func (s *Store) RunDiscoveryBeforeCommand() error

RunDiscoveryBeforeCommand runs discovery before executing a command that needs metadata

func (*Store) SaveScratches

func (s *Store) SaveScratches(scratches []Scratch) error

func (*Store) SaveScratchesAtomic added in v1.5.3

func (s *Store) SaveScratchesAtomic(scratches []Scratch) error

SaveScratchesAtomic performs bulk update with file locking

func (*Store) UpdateScratch

func (s *Store) UpdateScratch(scratchToUpdate Scratch) error

func (*Store) UpdateScratchAtomic added in v1.5.3

func (s *Store) UpdateScratchAtomic(scratchToUpdate Scratch) error

UpdateScratchAtomic updates a scratch with file locking

Jump to

Keyboard shortcuts

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