gordon

package
v0.1.20 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2023 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAppNotFound = errors.New("app not found")
)
View Source
var (
	ErrAssetNotFound = errors.New("asset not found")
)
View Source
var (
	ErrVersionNotFound = errors.New("version not found")
)

Functions

func AppPath

func AppPath(ev Env, app App) string
func Link(ev Env, version Version) error
func Unlink(ev Env, app App) error

func ValidateName

func ValidateName(name string) error

func ValidateOwner

func ValidateOwner(owner string) error

func ValidateTag

func ValidateTag(tag string) (semver.Version, error)

func VersionPath

func VersionPath(ev Env, version Version) string

func WalkAppVersions

func WalkAppVersions(ev Env, app App, walk VersionWalker) error

func WalkInstalledVersions

func WalkInstalledVersions(ev Env, walk VersionWalker) error

func WalkVersions

func WalkVersions(ev Env, walk VersionWalker) error

Types

type App

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

func FindApp

func FindApp(ev Env, spec AppSpec) (*App, error)

func RepoApp

func RepoApp(repo Repo) App

func (App) Spec added in v0.0.6

func (a App) Spec() AppSpec

func (App) String added in v0.0.6

func (a App) String() string

type AppSpec

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

AppSpec specifies a release in the GitHub. AppSpec can accept "owner/name@tag" notation. If "@tag" is ommited, it means latest tag.

func ParseAppSpec

func ParseAppSpec(rawApp string) (*AppSpec, error)

func (AppSpec) Name

func (a AppSpec) Name() string

func (AppSpec) Owner

func (a AppSpec) Owner() string

func (*AppSpec) Set

func (a *AppSpec) Set(rawApp string) error

Set text as AppSpec

func (AppSpec) String

func (a AppSpec) String() string

type Asset

type Asset struct {
	ID                 int64
	Name               string
	Label              string
	ContentType        string
	Size               int
	BrowserDownloadURL string
}

type Env

type Env interface {
	Architecture() string
	Bin() string
	Cache() string
	GithubHost() string
	GithubUser() string
	Hooks() []string
	Man() string
	OS() string
}

Env is an interface generated for "github.com/kyoh86/gordon/internal/env.Access".

type Release

type Release struct {
	Repo
	// contains filtered or unexported fields
}

func FindRelease

func FindRelease(ctx context.Context, ev Env, client *github.Client, spec VersionSpec) (*Release, error)

func (Release) Name

func (a Release) Name() string

func (Release) Owner

func (a Release) Owner() string

func (Release) Spec

func (r Release) Spec() VersionSpec

func (Release) String added in v0.1.16

func (r Release) String() string

func (Release) Tag

func (a Release) Tag() string

type Repo

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

func (Repo) Spec

func (r Repo) Spec() AppSpec

type Version

type Version struct {
	App
	// contains filtered or unexported fields
}

func Download

func Download(ctx context.Context, ev Env, client *github.Client, release Release) (*Version, error)

func FindVersion

func FindVersion(ev Env, spec VersionSpec) (*Version, error)

func ListAppVersions

func ListAppVersions(ev Env, app App) ([]Version, error)

func ListInstalledVersions

func ListInstalledVersions(ev Env) ([]Version, error)

func ListVersions

func ListVersions(ev Env) ([]Version, error)

func ParseVersionPath

func ParseVersionPath(ev Env, path string) (*Version, error)

func ReleaseVersion

func ReleaseVersion(release Release) Version

func (Version) Semver

func (v Version) Semver() semver.Version

func (Version) Spec added in v0.0.6

func (v Version) Spec() VersionSpec

func (Version) String

func (v Version) String() string

func (Version) Tag

func (v Version) Tag() string

type VersionSpec

type VersionSpec struct {
	AppSpec
	// contains filtered or unexported fields
}

VersionSpec specifies a release in the GitHub. VersionSpec can accept "owner/name@tag" notation. If "@tag" is ommited, it means latest tag.

func ParseVersionSpec

func ParseVersionSpec(rawRelease string) (*VersionSpec, error)

func (*VersionSpec) Set

func (v *VersionSpec) Set(rawRelease string) error

Set text as VersionSpec

func (VersionSpec) String

func (v VersionSpec) String() string

func (VersionSpec) Tag

func (v VersionSpec) Tag() string

func (VersionSpec) WithoutTag added in v0.0.6

func (v VersionSpec) WithoutTag() VersionSpec

type VersionSpecs

type VersionSpecs []VersionSpec

VersionSpecs is array of VersionSpec

func (VersionSpecs) IsCumulative

func (VersionSpecs) IsCumulative() bool

func (*VersionSpecs) Set

func (v *VersionSpecs) Set(value string) error

Set will add a text to VersionSpecs as a VersionSpec

func (VersionSpecs) String

func (v VersionSpecs) String() string

type VersionWalker

type VersionWalker func(Version) error

Jump to

Keyboard shortcuts

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