providers

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Jul 6, 2025 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateFormula

func GenerateFormula(data FormulaTemplateData) (string, error)

func ToClassName

func ToClassName(moduleName string) string

Types

type CommandProvider

type CommandProvider interface {
	Run(name string, args ...string) (string, error)
	RunWithEnv(name string, env []string, args ...string) error
	BuildBinary(moduleName, version, osName, arch, ldflags string) (string, error)
}

func NewCommandProvider

func NewCommandProvider() CommandProvider

type ConfigProvider

type ConfigProvider interface {
	ConfigExists() bool
	CreateDefaultConfig() error
	LoadConfig() (*models.Config, error)
	GetDefaultConfigData() []byte
}

func NewConfigProvider

func NewConfigProvider(fsProvider FileSystemProvider) ConfigProvider

type FileSystemProvider

type FileSystemProvider interface {
	ReadFile(path string) ([]byte, error)
	WriteFile(path string, data []byte, perm os.FileMode) error
	Open(path string) (io.ReadCloser, error)
	Create(path string) (io.WriteCloser, error)
	Stat(path string) (os.FileInfo, error)
	MkdirAll(path string, perm os.FileMode) error
	Remove(path string) error
	RemoveAll(path string) error
	GetModuleName() (string, error)
	EnsureDistDir(clean bool) error
	CalculateSHA256(r io.Reader) (string, error)
}

func NewFileSystemProvider

func NewFileSystemProvider() FileSystemProvider

type FormulaTemplateData

type FormulaTemplateData struct {
	ClassName        string
	Version          string
	ModuleName       string
	MacOSARM64URL    string
	MacOSARM64SHA256 string
	MacOSAMD64URL    string
	MacOSAMD64SHA256 string
	LinuxARM64URL    string
	LinuxARM64SHA256 string
	LinuxAMD64URL    string
	LinuxAMD64SHA256 string
}

type GitHubProvider

type GitHubProvider interface {
	GetRelease(ctx context.Context, repo *models.GitHubRepository, tagName string) (*github.RepositoryRelease, error)
	CreateRelease(ctx context.Context, repo *models.GitHubRepository, tagName string) (*github.RepositoryRelease, error)
	UploadAssets(ctx context.Context, repo *models.GitHubRepository, release *github.RepositoryRelease, assets []models.ReleaseAsset) error
	UpdateTapRepository(ctx context.Context, tapRepo *models.Repository, formula string, moduleName, version string) error
}

func NewGitHubProvider

func NewGitHubProvider(token string, fsProvider FileSystemProvider) GitHubProvider

type GitProvider

type GitProvider interface {
	GetCurrentVersion() (string, error)
	GetGitHubRepository() (*models.GitHubRepository, error)
}

func NewGitProvider

func NewGitProvider() GitProvider

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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