From c06b72f8e867a2fa0b78f6cb01e8b00831b44ddd Mon Sep 17 00:00:00 2001 From: Romain de Laage Date: Tue, 21 Dec 2021 20:37:41 +0100 Subject: [PATCH] Initial commit --- cli/cli.go | 40 ++++++++++++++++++++++++++++++++++++++++ cli/info.go | 18 ++++++++++++++++++ go.mod | 3 +++ main.go | 9 +++++++++ version/version.go | 7 +++++++ 5 files changed, 77 insertions(+) create mode 100644 cli/cli.go create mode 100644 cli/info.go create mode 100644 go.mod create mode 100644 main.go create mode 100644 version/version.go diff --git a/cli/cli.go b/cli/cli.go new file mode 100644 index 0000000..d1c1f0b --- /dev/null +++ b/cli/cli.go @@ -0,0 +1,40 @@ +package cli + +import ( + "flag" + "fmt" + + "git.rdelaage.ovh/rdelaage/VolumesAndDatabasesBackup/version" +) + +const ( + flagInfoHelp = "Show application information" + flagVersionHelp = "Show application version" + flagConfigFileHelp = "Load configuration file" +) + +func Parse() { + var ( + flagInfo bool + flagVersion bool + flagConfigFile string + ) + + flag.BoolVar(&flagInfo, "info", false, flagInfoHelp) + flag.BoolVar(&flagInfo, "i", false, flagInfoHelp) + flag.BoolVar(&flagVersion, "version", false, flagVersionHelp) + flag.BoolVar(&flagVersion, "v", false, flagVersionHelp) + flag.StringVar(&flagConfigFile, "config-file", "", flagConfigFileHelp) + flag.StringVar(&flagConfigFile, "c", "", flagConfigFileHelp) + flag.Parse() + + if flagInfo { + info() + return + } + + if flagVersion { + fmt.Println(version.Version) + return + } +} diff --git a/cli/info.go b/cli/info.go new file mode 100644 index 0000000..41647f3 --- /dev/null +++ b/cli/info.go @@ -0,0 +1,18 @@ +package cli + +import ( + "fmt" + "runtime" + + "git.rdelaage.ovh/rdelaage/VolumesAndDatabasesBackup/version" +) + +func info() { + fmt.Println("Version:", version.Version) + fmt.Println("Commit:", version.Commit) + fmt.Println("Build Date:", version.BuildDate) + fmt.Println("Go Version:", runtime.Version()) + fmt.Println("Compiler:", runtime.Compiler) + fmt.Println("Arch:", runtime.GOARCH) + fmt.Println("OS:", runtime.GOOS) +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..540098a --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module git.rdelaage.ovh/rdelaage/VolumesAndDatabasesBackup + +go 1.17 diff --git a/main.go b/main.go new file mode 100644 index 0000000..cbc7692 --- /dev/null +++ b/main.go @@ -0,0 +1,9 @@ +package main + +import ( + "git.rdelaage.ovh/rdelaage/VolumesAndDatabasesBackup/cli" +) + +func main() { + cli.Parse() +} diff --git a/version/version.go b/version/version.go new file mode 100644 index 0000000..d727747 --- /dev/null +++ b/version/version.go @@ -0,0 +1,7 @@ +package version + +var ( + Version = "dev" + Commit = "HEAD" + BuildDate = "undefined" +)