Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Version = "dev" // Default value if not built with ldflags Commit = "none" // Default value Date = "unknown" // Default value )
These variables are set at build time using -ldflags They are exported so they can be used by root.go for the --version flag
View Source
var VersionCmd = &cobra.Command{ Use: "version", Short: "Print the version number of eng and check for updates", Long: `All software has versions. This is eng's. It shows the Git tag, commit hash, build date, Go version, OS/Arch, and checks GitHub for the latest available release.`, Run: func(cmd *cobra.Command, args []string) { log.Info("eng version: %s", Version) log.Message(" Git Commit: %s", Commit) log.Message(" Build Date: %s", Date) log.Message(" Go Version: %s", runtime.Version()) log.Message(" OS/Arch: %s/%s", runtime.GOOS, runtime.GOARCH) log.Message("") sp := utils.NewSpinner("Checking for latest version...") sp.Start() defer sp.Stop() latestRelease, err := getLatestRelease(githubRepoOwner, githubRepoName) if err != nil { log.Warn("Could not check for updates: %v", err) return } if latestRelease == nil || latestRelease.TagName == "" { log.Warn("Could not determine latest release version.") return } if Version == "dev" { log.Info("Currently running development version.") log.Info("Latest release is %s: %s", latestRelease.TagName, latestRelease.HTMLURL) return } currentSemVer, err := semver.NewVersion(Version) if err != nil { log.Warn("Could not parse current version (%s) for comparison: %v", Version, err) log.Info("Latest release is %s: %s", latestRelease.TagName, latestRelease.HTMLURL) return } latestSemVer, err := semver.NewVersion(latestRelease.TagName) if err != nil { log.Warn("Could not parse latest release tag (%s) for comparison: %v", latestRelease.TagName, err) return } if latestSemVer.GreaterThan(currentSemVer) { log.Success("A newer version is available: %s", latestRelease.TagName) log.Info(" Get it here: %s", latestRelease.HTMLURL) } else if latestSemVer.Equal(currentSemVer) { log.Success("You are running the latest version.") } else { log.Info("You are running a version newer than the latest release (%s).", latestRelease.TagName) } }, }
VersionCmd represents the version command
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.