diff --git a/Makefile b/Makefile index aaad91c48..1c73d75c8 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 c7a7d25ea..f8dfe00f8 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 da4b05f12..88b961d66 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 9adc3b7e4..af0a526d7 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 57f7a5de3..0ab9638fa 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 000000000..6f3d47aed --- /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 867aff9f1..000000000 --- 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" -)