Help us shape the future of Go! Take the 2026 Go Developer Survey

provider

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseProvider

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

BaseProvider implements common functionality for providers.

func NewBaseProvider

func NewBaseProvider(name string, cfg config.Provider) (*BaseProvider, error)

NewBaseProvider creates a BaseProvider from config.

func (*BaseProvider) Available

func (b *BaseProvider) Available() bool

Available implements Provider.

func (*BaseProvider) CurrentSize

func (b *BaseProvider) CurrentSize() (int64, error)

CurrentSize implements Provider.

func (*BaseProvider) MaxAge

func (b *BaseProvider) MaxAge() time.Duration

MaxAge implements Provider.

func (*BaseProvider) MaxSize

func (b *BaseProvider) MaxSize() int64

MaxSize implements Provider.

func (*BaseProvider) Name

func (b *BaseProvider) Name() string

Name implements Provider.

func (*BaseProvider) Paths

func (b *BaseProvider) Paths() []string

Paths implements Provider.

type CleanMode

type CleanMode int

CleanMode determines cleaning strategy.

const (
	CleanModeFull  CleanMode = iota // Delete everything (via command or all files)
	CleanModeSmart                  // Smart clean: delete files older than max_age, then LRU until under max_size
)

CleanMode constants.

type CleanOptions

type CleanOptions struct {
	DryRun bool
	Mode   CleanMode
}

CleanOptions configures cleaning behavior.

type CleanResult

type CleanResult struct {
	Output       string
	BytesCleaned int64
	FilesDeleted int64
}

CleanResult contains cleaning operation results.

type CommandProvider

type CommandProvider struct {
	*BaseProvider
	// contains filtered or unexported fields
}

CommandProvider cleans caches by running an external command.

func NewCommandProvider

func NewCommandProvider(name string, cfg config.Provider) (*CommandProvider, error)

NewCommandProvider creates a provider that cleans via external command.

func (*CommandProvider) Clean

Clean implements Provider.

type DockerProvider

type DockerProvider struct {
	*BaseProvider
	// contains filtered or unexported fields
}

DockerProvider cleans Docker caches when daemon is available.

func NewDockerProvider

func NewDockerProvider(name string, cfg config.Provider) (*DockerProvider, error)

NewDockerProvider creates a Docker provider with availability checking.

func (*DockerProvider) Available

func (p *DockerProvider) Available() bool

Available implements Provider.

func (*DockerProvider) Clean

Clean implements Provider.

type FileProvider

type FileProvider struct {
	*BaseProvider
}

FileProvider cleans caches by deleting oldest files until under limit.

func NewFileProvider

func NewFileProvider(name string, cfg config.Provider) (*FileProvider, error)

NewFileProvider creates a provider that cleans by file deletion.

func (*FileProvider) Clean

func (p *FileProvider) Clean(ctx context.Context, opts CleanOptions) (CleanResult, error)

Clean implements Provider.

type Provider

type Provider interface {
	// Name returns the provider's identifier.
	Name() string

	// Paths returns the expanded paths this provider manages.
	Paths() []string

	// CurrentSize returns the total size of cached files in bytes.
	CurrentSize() (int64, error)

	// MaxSize returns the configured maximum size in bytes.
	MaxSize() int64

	// MaxAge returns the configured maximum file age.
	MaxAge() time.Duration

	// Clean removes cached files to bring size under limit.
	Clean(ctx context.Context, opts CleanOptions) (CleanResult, error)

	// Available returns whether the provider can be used.
	// For most providers this is always true. Docker checks if daemon is running.
	Available() bool
}

Provider defines the interface for cache providers.

func LoadProvider

func LoadProvider(name string, cfg *config.Config) (Provider, error)

LoadProvider creates a single provider by name.

func LoadProviders

func LoadProviders(cfg *config.Config) ([]Provider, error)

LoadProviders creates all enabled providers from config.

func NewProvider

func NewProvider(name string, cfg config.Provider) (Provider, error)

NewProvider creates a provider from config.

Jump to

Keyboard shortcuts

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