Documentation
¶
Overview ¶
Package ghupdate implements a new command to self update the current executable with the latest GitHub release. This is based on PocketBase's ghupdate package with modifications.
Index ¶
- Constants
- func ColorPrint(color, text string)
- func ColorPrintf(color, format string, args ...any)
- func FetchLatestRelease(ctx context.Context, client HttpClient, url string) (*release, error)
- func HandleSELinuxContext(path string) error
- func Update(config Config) (updated bool, err error)
- type Config
- type HttpClient
Constants ¶
View Source
const ( ColorYellow = "\033[33m" ColorGreen = "\033[32m" )
Minimal color functions using ANSI escape codes
Variables ¶
This section is empty.
Functions ¶
func ColorPrint ¶
func ColorPrint(color, text string)
func ColorPrintf ¶
func FetchLatestRelease ¶ added in v0.18.5
func FetchLatestRelease(ctx context.Context, client HttpClient, url string) (*release, error)
func HandleSELinuxContext ¶ added in v0.18.3
HandleSELinuxContext restores or applies the correct SELinux label to the binary.
Types ¶
type Config ¶
type Config struct {
// Owner specifies the account owner of the repository (default to "pocketbase").
Owner string
// Repo specifies the name of the repository (default to "pocketbase").
Repo string
// ArchiveExecutable specifies the name of the executable file in the release archive
// (default to "pocketbase"; an additional ".exe" check is also performed as a fallback).
ArchiveExecutable string
// Optional context to use when fetching and downloading the latest release.
Context context.Context
// The HTTP client to use when fetching and downloading the latest release.
// Defaults to `http.DefaultClient`.
HttpClient HttpClient
// The data directory to use when fetching and downloading the latest release.
DataDir string
// UseMirror specifies whether to use the beszel.dev mirror instead of GitHub API.
// When false (default), always uses api.github.com. When true, uses gh.beszel.dev.
UseMirror bool
}
Config defines the config options of the ghupdate plugin.
NB! This plugin is considered experimental and its config options may change in the future.
Click to show internal directories.
Click to hide internal directories.