version

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GitHubRepoOwner    = "sunerpy"
	GitHubRepoName     = "pt-tools"
	GitHubReleasesURL  = "https://api.github.com/repos/" + GitHubRepoOwner + "/" + GitHubRepoName + "/releases"
	GitHubChangelogURL = "https://github.com/" + GitHubRepoOwner + "/" + GitHubRepoName + "/blob/main/CHANGELOG.md"
	MaxDisplayReleases = 3
	CheckInterval      = 24 * time.Hour
	RequestTimeout     = 15 * time.Second
)

Variables

View Source
var (
	ErrDockerEnvironment    = errors.New("自动升级不支持 Docker 环境,请更新容器镜像")
	ErrUnsupportedPlatform  = errors.New("当前平台不支持自动升级")
	ErrNoAssetFound         = errors.New("未找到适用于当前平台的安装包")
	ErrUpgradeInProgress    = errors.New("升级正在进行中")
	ErrDownloadFailed       = errors.New("下载安装包失败")
	ErrExtractionFailed     = errors.New("解压安装包失败")
	ErrReplacementFailed    = errors.New("替换可执行文件失败")
	ErrPermissionDenied     = errors.New("权限不足,无法替换可执行文件")
	ErrVersionAlreadyLatest = errors.New("当前已是最新版本")
)
View Source
var (
	Version   = "unknown"
	BuildTime = "unknown"
	CommitID  = "unknown"
	BuildOS   = ""
	BuildArch = ""
)

Functions

func CleanupOldBinary added in v0.5.0

func CleanupOldBinary()

CleanupOldBinary removes leftover .pt-tools-old and .pt-tools-backup files from previous upgrades. Call this at application startup.

func CompareVersions added in v0.4.0

func CompareVersions(a, b *SemVer) int

func GetAssetName added in v0.5.0

func GetAssetName() string

func GetAssetNameForPlatform added in v0.5.0

func GetAssetNameForPlatform(osName, arch string) string

GetAssetNameForPlatform returns the asset name matching release workflow: Linux: pt-tools-linux-{arch}.tar.gz, Windows: pt-tools-windows-{arch}.exe.zip

func GetBinaryName added in v0.5.0

func GetBinaryName(osName string) string

Types

type CheckOptions added in v0.4.0

type CheckOptions struct {
	Force    bool
	ProxyURL string
}

type Checker added in v0.4.0

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

func GetChecker added in v0.4.0

func GetChecker() *Checker

func NewChecker added in v0.4.0

func NewChecker() *Checker

func (*Checker) CheckForUpdates added in v0.4.0

func (c *Checker) CheckForUpdates(ctx context.Context, opts CheckOptions) (*VersionCheckResult, error)

func (*Checker) GetCachedResult added in v0.4.0

func (c *Checker) GetCachedResult() *VersionCheckResult

func (*Checker) ShouldCheck added in v0.4.0

func (c *Checker) ShouldCheck() bool

type GitHubAsset added in v0.5.0

type GitHubAsset struct {
	Name        string `json:"name"`
	DownloadURL string `json:"browser_download_url"`
	Size        int64  `json:"size"`
	ContentType string `json:"content_type"`
}

type GitHubRelease added in v0.4.0

type GitHubRelease struct {
	TagName     string        `json:"tag_name"`
	Name        string        `json:"name"`
	Body        string        `json:"body"`
	HTMLURL     string        `json:"html_url"`
	PublishedAt time.Time     `json:"published_at"`
	Prerelease  bool          `json:"prerelease"`
	Draft       bool          `json:"draft"`
	Assets      []GitHubAsset `json:"assets"`
}

type ReleaseAsset added in v0.5.0

type ReleaseAsset struct {
	Name        string `json:"name"`
	DownloadURL string `json:"download_url"`
	Size        int64  `json:"size"`
}

type ReleaseInfo added in v0.4.0

type ReleaseInfo struct {
	Version     string         `json:"version"`
	Name        string         `json:"name"`
	Changelog   string         `json:"changelog"`
	URL         string         `json:"url"`
	PublishedAt int64          `json:"published_at"`
	Assets      []ReleaseAsset `json:"assets,omitempty"`
}

type RuntimeEnvironment added in v0.5.0

type RuntimeEnvironment struct {
	IsDocker       bool   `json:"is_docker"`
	OS             string `json:"os"`
	Arch           string `json:"arch"`
	Executable     string `json:"executable"`
	CanSelfUpgrade bool   `json:"can_self_upgrade"`
}

func DetectEnvironment added in v0.5.0

func DetectEnvironment() RuntimeEnvironment

type SemVer added in v0.4.0

type SemVer struct {
	Major      int
	Minor      int
	Patch      int
	Prerelease string
	Build      string
}

func ParseVersion added in v0.4.0

func ParseVersion(version string) *SemVer

type UpgradeProgress added in v0.5.0

type UpgradeProgress struct {
	Status          UpgradeStatus `json:"status"`
	TargetVersion   string        `json:"target_version,omitempty"`
	Progress        float64       `json:"progress"`
	BytesDownloaded int64         `json:"bytes_downloaded"`
	TotalBytes      int64         `json:"total_bytes"`
	Error           string        `json:"error,omitempty"`
	StartedAt       int64         `json:"started_at,omitempty"`
	CompletedAt     int64         `json:"completed_at,omitempty"`
}

type UpgradeStatus added in v0.5.0

type UpgradeStatus string
const (
	UpgradeStatusIdle        UpgradeStatus = "idle"
	UpgradeStatusDownloading UpgradeStatus = "downloading"
	UpgradeStatusExtracting  UpgradeStatus = "extracting"
	UpgradeStatusReplacing   UpgradeStatus = "replacing"
	UpgradeStatusCompleted   UpgradeStatus = "completed"
	UpgradeStatusFailed      UpgradeStatus = "failed"
)

type Upgrader added in v0.5.0

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

func GetUpgrader added in v0.5.0

func GetUpgrader() *Upgrader

func NewUpgrader added in v0.5.0

func NewUpgrader() *Upgrader

func (*Upgrader) CanUpgrade added in v0.5.0

func (u *Upgrader) CanUpgrade() error

func (*Upgrader) Cancel added in v0.5.0

func (u *Upgrader) Cancel()

func (*Upgrader) GetProgress added in v0.5.0

func (u *Upgrader) GetProgress() UpgradeProgress

func (*Upgrader) Upgrade added in v0.5.0

func (u *Upgrader) Upgrade(ctx context.Context, release *ReleaseInfo, proxyURL string) error

type VersionCheckResult added in v0.4.0

type VersionCheckResult struct {
	CurrentVersion  string        `json:"current_version"`
	HasUpdate       bool          `json:"has_update"`
	NewReleases     []ReleaseInfo `json:"new_releases,omitempty"`
	ChangelogURL    string        `json:"changelog_url,omitempty"`
	HasMoreReleases bool          `json:"has_more_releases,omitempty"`
	CheckedAt       int64         `json:"checked_at"`
	Error           string        `json:"error,omitempty"`
}

type VersionInfo added in v0.4.0

type VersionInfo struct {
	Version   string `json:"version"`
	BuildTime string `json:"build_time"`
	CommitID  string `json:"commit_id"`
}

func GetVersionInfo added in v0.4.0

func GetVersionInfo() VersionInfo

Jump to

Keyboard shortcuts

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