ignore

Форк
0
/
version.go 
52 строки · 1.2 Кб
1
package cmd
2

3
import (
4
	"fmt"
5
	"github.com/charmbracelet/lipgloss"
6
	"github.com/neptunsk1y/ignore/version"
7
	"github.com/spf13/cobra"
8
	"html/template"
9
	"runtime"
10
)
11

12
func init() {
13
	rootCmd.AddCommand(versionCmd)
14
}
15

16
var versionCmd = &cobra.Command{
17
	Use:   "version",
18
	Short: "Print the version number of the ignore",
19
	Run: func(cmd *cobra.Command, args []string) {
20
		_, err := version.Latest()
21
		if err != nil {
22
			fmt.Println("Error version check")
23
		}
24

25
		versionInfo := struct {
26
			Version  string
27
			OS       string
28
			Arch     string
29
			App      string
30
			Compiler string
31
		}{
32
			Version:  version.Version,
33
			App:      "ignore",
34
			OS:       runtime.GOOS,
35
			Arch:     runtime.GOARCH,
36
			Compiler: runtime.Compiler,
37
		}
38

39
		t, err := template.New("version").Funcs(map[string]any{
40
			"faint":   lipgloss.NewStyle().Faint(true).Render,
41
			"bold":    lipgloss.NewStyle().Bold(true).Render,
42
			"magenta": lipgloss.NewStyle().Foreground(lipgloss.Color("#5a6368")).Render,
43
		}).Parse(`{{ magenta "▇▇▇" }} {{ magenta .App }} 
44

45
  {{ faint "Version" }}  {{ bold .Version }}
46
  {{ faint "Platform" }} {{ bold .OS }}/{{ bold .Arch }}
47
  {{ faint "Compiler" }} {{ bold .Compiler }}
48
`)
49
		handleErr(err)
50
		handleErr(t.Execute(cmd.OutOrStdout(), versionInfo))
51
	},
52
}
53

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.