From 55bfb36522d660da06241ac10ea70dbc1561fbaa Mon Sep 17 00:00:00 2001 From: HikariKnight <2557889+HikariKnight@users.noreply.github.com> Date: Sat, 30 Mar 2024 14:45:54 +0100 Subject: [PATCH] feat: Add version output --- .goreleaser.yaml | 5 +++-- cmd/main.go | 7 ++++++- internal/pages/01_welcome.go | 5 ++++- internal/params/params.go | 13 ++++++++++--- internal/version/version.go | 4 ++++ 5 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 internal/version/version.go diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 0091b22..a56219d 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -16,9 +16,10 @@ builds: - CGO_ENABLED=0 goos: - linux - goarch: - amd64 + ldflags: + - -s -w -X version.Version={{ .Tag }} mod_timestamp: "{{ .CommitTimestamp }}" archives: @@ -44,4 +45,4 @@ upx: enabled: true compress: best lzma: true - brute: true \ No newline at end of file + brute: true diff --git a/cmd/main.go b/cmd/main.go index 5973bf6..fd13cda 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -1,16 +1,21 @@ package main import ( + "fmt" + internal "github.com/HikariKnight/quickpassthrough/internal" downloader "github.com/HikariKnight/quickpassthrough/internal/ls_iommu_downloader" "github.com/HikariKnight/quickpassthrough/internal/params" + "github.com/HikariKnight/quickpassthrough/internal/version" ) func main() { // Get all our arguments in 1 neat struct pArg := params.NewParams() - if !pArg.Flag["gui"] { + if pArg.Flag["version"] { + fmt.Printf("Quickpassthrough version: %s\n", version.Version) + } else { downloader.CheckLsIOMMU() internal.Tui() } diff --git a/internal/pages/01_welcome.go b/internal/pages/01_welcome.go index 8ecafeb..413b3d1 100644 --- a/internal/pages/01_welcome.go +++ b/internal/pages/01_welcome.go @@ -5,6 +5,8 @@ import ( "os" "github.com/HikariKnight/quickpassthrough/internal/configs" + "github.com/HikariKnight/quickpassthrough/internal/logger" + "github.com/HikariKnight/quickpassthrough/internal/version" "github.com/HikariKnight/quickpassthrough/pkg/command" "github.com/HikariKnight/quickpassthrough/pkg/menu" "github.com/gookit/color" @@ -17,7 +19,8 @@ func Welcome() { // Write title title := color.New(color.BgHiBlue, color.White, color.Bold) - title.Println("Welcome to Quickpassthrough!") + title.Printf("Welcome to Quickpassthrough %s!\n", version.Version) + logger.Printf("Welcome to Quickpassthrough %s!\n", version.Version) // Write welcome message color.Print( diff --git a/internal/params/params.go b/internal/params/params.go index dab85bb..cd28cfa 100644 --- a/internal/params/params.go +++ b/internal/params/params.go @@ -48,9 +48,15 @@ func NewParams() *Params { parser := argparse.NewParser("quickpassthrough", "A utility to help you configure your host for GPU Passthrough") // Configure arguments - gui := parser.Flag("g", "gui", &argparse.Options{ + /*gui := parser.Flag("g", "gui", &argparse.Options{ Required: false, Help: "Launch GUI (placeholder for now)", + })*/ + + // Add version flag + version := parser.Flag("v", "version", &argparse.Options{ + Required: false, + Help: "Display version", }) // Parse arguments @@ -72,8 +78,9 @@ func NewParams() *Params { } // Add all parsed arguments to a struct for portability since we will use them all over the program - pArg.addFlag("gui", *gui) - /*pArg.addFlag("gpu", *gpu) + pArg.addFlag("version", *version) + /*pArg.addFlag("gui", *gui) + pArg.addFlag("gpu", *gpu) pArg.addFlag("usb", *usb) pArg.addFlag("nic", *nic) pArg.addFlag("sata", *sata) diff --git a/internal/version/version.go b/internal/version/version.go new file mode 100644 index 0000000..cfa579a --- /dev/null +++ b/internal/version/version.go @@ -0,0 +1,4 @@ +package version + +// This is automatically set in CI using -ldflags="-X github.com/HikariKnight/quickpassthrough/internal/version.Version=${TAG}" as a build argument +var Version string