X Tutup
package version import ( "fmt" "regexp" "strings" "github.com/cli/cli/pkg/cmdutil" "github.com/spf13/cobra" ) func NewCmdVersion(f *cmdutil.Factory, version, buildDate string) *cobra.Command { cmd := &cobra.Command{ Use: "version", Hidden: true, Run: func(cmd *cobra.Command, args []string) { fmt.Fprint(f.IOStreams.Out, Format(version, buildDate)) }, } cmdutil.DisableAuthCheck(cmd) return cmd } func Format(version, buildDate string) string { version = strings.TrimPrefix(version, "v") var dateStr string if buildDate != "" { dateStr = fmt.Sprintf(" (%s)", buildDate) } return fmt.Sprintf("gh version %s%s\n%s\n", version, dateStr, changelogURL(version)) } func changelogURL(version string) string { path := "https://github.com/cli/cli" r := regexp.MustCompile(`^v?\d+\.\d+\.\d+(-[\w.]+)?$`) if !r.MatchString(version) { return fmt.Sprintf("%s/releases/latest", path) } url := fmt.Sprintf("%s/releases/tag/v%s", path, strings.TrimPrefix(version, "v")) return url }
X Tutup