diff --git a/Makefile b/Makefile index aaad91c4..1c73d75c 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ $(BINS): $(BINDIR) dep @echo "⇒ Build $@" CGO_ENABLED=0 \ go build -v -trimpath \ - -ldflags "-X main.Version=$(VERSION)" \ + -ldflags "-X $(REPO)/internal/version.Version=$(VERSION)" \ -o $@ ./cmd/$(subst neofs-,,$(notdir $@)) $(BINDIR): diff --git a/api/metrics/collector.go b/api/metrics/collector.go index c7a7d25e..f8dfe00f 100644 --- a/api/metrics/collector.go +++ b/api/metrics/collector.go @@ -1,7 +1,7 @@ package metrics import ( - "github.com/nspcc-dev/neofs-s3-gw/misc" + "github.com/nspcc-dev/neofs-s3-gw/internal/version" "github.com/prometheus/client_golang/prometheus" ) @@ -60,7 +60,7 @@ func (s *stats) Describe(ch chan<- *prometheus.Desc) { func (s *stats) Collect(ch chan<- prometheus.Metric) { // Expose current version information - versionInfo.WithLabelValues(misc.Version).Set(1.0) + versionInfo.WithLabelValues(version.Version).Set(1.0) // connect collectors collectHTTPMetrics(ch) diff --git a/api/response.go b/api/response.go index da4b05f1..88b961d6 100644 --- a/api/response.go +++ b/api/response.go @@ -10,7 +10,7 @@ import ( "strconv" "github.com/google/uuid" - "github.com/nspcc-dev/neofs-s3-gw/misc" + "github.com/nspcc-dev/neofs-s3-gw/internal/version" ) type ( @@ -153,7 +153,7 @@ func errorResponseHandler(w http.ResponseWriter, r *http.Request) { // Write http common headers. func setCommonHeaders(w http.ResponseWriter) { - w.Header().Set(hdrServerInfo, "NeoFS-S3-GW/"+misc.Version) + w.Header().Set(hdrServerInfo, version.Server) w.Header().Set(hdrAcceptRanges, "bytes") // Remove sensitive information diff --git a/cmd/authmate/main.go b/cmd/authmate/main.go index 9adc3b7e..af0a526d 100644 --- a/cmd/authmate/main.go +++ b/cmd/authmate/main.go @@ -15,6 +15,7 @@ import ( "github.com/nspcc-dev/cdn-sdk/pool" "github.com/nspcc-dev/neofs-api-go/pkg/container" "github.com/nspcc-dev/neofs-s3-gw/authmate" + "github.com/nspcc-dev/neofs-s3-gw/internal/version" "github.com/urfave/cli/v2" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -30,11 +31,6 @@ const ( poolRequestTimeout = 5 * time.Second ) -var ( - // Version of the program. - Version = "dev" -) - var ( neoFSKeyPathFlag string peerAddressFlag string @@ -89,7 +85,7 @@ func main() { app := &cli.App{ Name: "NeoFS gate authentication manager", Usage: "Helps manage delegated access via gates to data stored in NeoFS network", - Version: Version, + Version: version.Version, Flags: appFlags(), Commands: appCommands(), } diff --git a/cmd/s3-gw/app-settings.go b/cmd/s3-gw/app-settings.go index 57f7a5de..0ab9638f 100644 --- a/cmd/s3-gw/app-settings.go +++ b/cmd/s3-gw/app-settings.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "github.com/nspcc-dev/neofs-s3-gw/misc" + "github.com/nspcc-dev/neofs-s3-gw/internal/version" "github.com/spf13/pflag" "github.com/spf13/viper" "go.uber.org/zap" @@ -87,6 +87,12 @@ const ( // Settings. // Command line args. cmdHelp = "help" cmdVersion = "version" + + // applicationName is gateway name. + applicationName = "neofs-s3-gw" + + // envPrefix is environment variables prefix used for configuration. + envPrefix = "S3_GW" ) type empty int @@ -145,7 +151,7 @@ func newSettings() *viper.Viper { v := viper.New() v.AutomaticEnv() - v.SetEnvPrefix(misc.Prefix) + v.SetEnvPrefix(envPrefix) v.SetConfigType("yaml") v.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) @@ -158,7 +164,7 @@ func newSettings() *viper.Viper { flags.Bool(cfgEnableMetrics, false, "enable prometheus metrics") help := flags.BoolP(cmdHelp, "h", false, "show help") - version := flags.BoolP(cmdVersion, "v", false, "show version") + versionFlag := flags.BoolP(cmdVersion, "v", false, "show version") flags.String(cfgNeoFSPrivateKey, "", "set value to hex string, WIF string, or path to NeoFS private key file") flags.String(cfgGateAuthPrivateKey, "", "set path to file with auth (curve25519) private key to use in auth scheme") @@ -179,8 +185,8 @@ func newSettings() *viper.Viper { domains := flags.StringArrayP(cfgListenDomains, "d", nil, "set domains to be listened") // set prefers: - v.Set(cfgApplicationName, misc.ApplicationName) - v.Set(cfgApplicationVersion, misc.Version) + v.Set(cfgApplicationName, applicationName) + v.Set(cfgApplicationVersion, version.Version) // set defaults: @@ -228,7 +234,7 @@ func newSettings() *viper.Viper { switch { case help != nil && *help: - fmt.Printf("NeoFS S3 Gateway %s\n", misc.Version) + fmt.Printf("NeoFS S3 gateway %s\n", version.Version) flags.PrintDefaults() fmt.Println() @@ -243,19 +249,19 @@ func newSettings() *viper.Viper { } k := strings.Replace(keys[i], ".", "_", -1) - fmt.Printf("%s_%s = %v\n", misc.Prefix, strings.ToUpper(k), v.Get(keys[i])) + fmt.Printf("%s_%s = %v\n", envPrefix, strings.ToUpper(k), v.Get(keys[i])) } fmt.Println() fmt.Println("Peers preset:") fmt.Println() - fmt.Printf("%s_%s_[N]_ADDRESS = string\n", misc.Prefix, strings.ToUpper(cfgPeers)) - fmt.Printf("%s_%s_[N]_WEIGHT = 0..1 (float)\n", misc.Prefix, strings.ToUpper(cfgPeers)) + fmt.Printf("%s_%s_[N]_ADDRESS = string\n", envPrefix, strings.ToUpper(cfgPeers)) + fmt.Printf("%s_%s_[N]_WEIGHT = 0..1 (float)\n", envPrefix, strings.ToUpper(cfgPeers)) os.Exit(0) - case version != nil && *version: - fmt.Printf("NeoFS S3 Gateway %s\n", misc.Version) + case versionFlag != nil && *versionFlag: + fmt.Printf("NeoFS S3 gateway %s\n", version.Version) os.Exit(0) case ttl != nil && ttl.Minutes() < minimumTTLInMinutes: fmt.Printf("connection ttl should not be less than %s", defaultTTL) diff --git a/internal/version/version.go b/internal/version/version.go new file mode 100644 index 00000000..6f3d47ae --- /dev/null +++ b/internal/version/version.go @@ -0,0 +1,9 @@ +package version + +var ( + // Version contains application version. + Version = "dev" + + // Server contains server identification string. + Server = "NeoFS-S3-GW/" + Version +) diff --git a/misc/build.go b/misc/build.go deleted file mode 100644 index 867aff9f..00000000 --- a/misc/build.go +++ /dev/null @@ -1,14 +0,0 @@ -package misc - -const ( - // ApplicationName is gateway name. - ApplicationName = "neofs-s3-gw" - - // Prefix is configuration environment variables prefix. - Prefix = "S3_GW" -) - -var ( - // Version contains application version. - Version = "dev" -)