mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-10-14 00:59:33 +00:00
[NOD-664] Remove version from everything inside kaspad/cmd - use kaspad version instead (#642)
* [NOD-664] Remove version from everything inside kaspad/cmd - use kaspad version instead * [NOD-664] Fix broken import
This commit is contained in:
parent
ad04bbde83
commit
cdd96d0670
@ -7,6 +7,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/kaspanet/kaspad/config"
|
"github.com/kaspanet/kaspad/config"
|
||||||
|
"github.com/kaspanet/kaspad/version"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net"
|
"net"
|
||||||
@ -184,7 +185,7 @@ func loadConfig() (*ConfigFlags, []string, error) {
|
|||||||
appName = strings.TrimSuffix(appName, filepath.Ext(appName))
|
appName = strings.TrimSuffix(appName, filepath.Ext(appName))
|
||||||
usageMessage := fmt.Sprintf("Use %s -h to show options", appName)
|
usageMessage := fmt.Sprintf("Use %s -h to show options", appName)
|
||||||
if preCfg.ShowVersion {
|
if preCfg.ShowVersion {
|
||||||
fmt.Println(appName, "version", version())
|
fmt.Println(appName, "version", version.Version())
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
// Copyright (c) 2013 The btcsuite developers
|
|
||||||
// Use of this source code is governed by an ISC
|
|
||||||
// license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"fmt"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// semanticAlphabet
|
|
||||||
const semanticAlphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-"
|
|
||||||
|
|
||||||
// These constants define the application version and follow the semantic
|
|
||||||
// versioning 2.0.0 spec (http://semver.org/).
|
|
||||||
const (
|
|
||||||
appMajor uint = 0
|
|
||||||
appMinor uint = 12
|
|
||||||
appPatch uint = 0
|
|
||||||
|
|
||||||
// appPreRelease MUST only contain characters from semanticAlphabet
|
|
||||||
// per the semantic versioning spec.
|
|
||||||
appPreRelease = "beta"
|
|
||||||
)
|
|
||||||
|
|
||||||
// appBuild is defined as a variable so it can be overridden during the build
|
|
||||||
// process with '-ldflags "-X main.appBuild foo' if needed. It MUST only
|
|
||||||
// contain characters from semanticAlphabet per the semantic versioning spec.
|
|
||||||
var appBuild string
|
|
||||||
|
|
||||||
// version returns the application version as a properly formed string per the
|
|
||||||
// semantic versioning 2.0.0 spec (http://semver.org/).
|
|
||||||
func version() string {
|
|
||||||
// Start with the major, minor, and patch versions.
|
|
||||||
version := fmt.Sprintf("%d.%d.%d", appMajor, appMinor, appPatch)
|
|
||||||
|
|
||||||
// Append pre-release version if there is one. The hyphen called for
|
|
||||||
// by the semantic versioning spec is automatically appended and should
|
|
||||||
// not be contained in the pre-release string. The pre-release version
|
|
||||||
// is not appended if it contains invalid characters.
|
|
||||||
preRelease := normalizeVerString(appPreRelease)
|
|
||||||
if preRelease != "" {
|
|
||||||
version = fmt.Sprintf("%s-%s", version, preRelease)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Append build metadata if there is any. The plus called for
|
|
||||||
// by the semantic versioning spec is automatically appended and should
|
|
||||||
// not be contained in the build metadata string. The build metadata
|
|
||||||
// string is not appended if it contains invalid characters.
|
|
||||||
build := normalizeVerString(appBuild)
|
|
||||||
if build != "" {
|
|
||||||
version = fmt.Sprintf("%s+%s", version, build)
|
|
||||||
}
|
|
||||||
|
|
||||||
return version
|
|
||||||
}
|
|
||||||
|
|
||||||
// normalizeVerString returns the passed string stripped of all characters which
|
|
||||||
// are not valid according to the semantic versioning guidelines for pre-release
|
|
||||||
// version and build metadata strings. In particular they MUST only contain
|
|
||||||
// characters in semanticAlphabet.
|
|
||||||
func normalizeVerString(str string) string {
|
|
||||||
var result bytes.Buffer
|
|
||||||
for _, r := range str {
|
|
||||||
if strings.ContainsRune(semanticAlphabet, r) {
|
|
||||||
// Ignoring the error here since it can only fail if
|
|
||||||
// the the system is out of memory and there are much
|
|
||||||
// bigger issues at that point.
|
|
||||||
_, _ = result.WriteRune(r)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result.String()
|
|
||||||
}
|
|
@ -11,7 +11,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
"github.com/jessevdk/go-flags"
|
"github.com/jessevdk/go-flags"
|
||||||
"github.com/kaspanet/kaspad/cmd/kaspaminer/version"
|
"github.com/kaspanet/kaspad/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2,11 +2,11 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/kaspanet/kaspad/version"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
"github.com/kaspanet/kaspad/cmd/kaspaminer/version"
|
|
||||||
"github.com/kaspanet/kaspad/signal"
|
"github.com/kaspanet/kaspad/signal"
|
||||||
"github.com/kaspanet/kaspad/util/panics"
|
"github.com/kaspanet/kaspad/util/panics"
|
||||||
)
|
)
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
package version
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// validCharacters is a list of characters valid in the appBuild string
|
|
||||||
const validCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-"
|
|
||||||
|
|
||||||
const (
|
|
||||||
appMajor uint = 0
|
|
||||||
appMinor uint = 1
|
|
||||||
appPatch uint = 0
|
|
||||||
)
|
|
||||||
|
|
||||||
// appBuild is defined as a variable so it can be overridden during the build
|
|
||||||
// process with '-ldflags "-X github.com/kaspanet/kaspad/cmd/kaspaminer/version.appBuild=foo"' if needed.
|
|
||||||
// It MUST only contain characters from validCharacters.
|
|
||||||
var appBuild string
|
|
||||||
|
|
||||||
var version = "" // string used for memoization of version
|
|
||||||
|
|
||||||
// Version returns the application version as a properly formed string
|
|
||||||
func Version() string {
|
|
||||||
if version == "" {
|
|
||||||
// Start with the major, minor, and patch versions.
|
|
||||||
version = fmt.Sprintf("%d.%d.%d", appMajor, appMinor, appPatch)
|
|
||||||
|
|
||||||
// Append build metadata if there is any.
|
|
||||||
// Panic if any invalid characters are encountered
|
|
||||||
if appBuild != "" {
|
|
||||||
checkAppBuild(appBuild)
|
|
||||||
|
|
||||||
version = fmt.Sprintf("%s-%s", version, appBuild)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return version
|
|
||||||
}
|
|
||||||
|
|
||||||
// checkAppBuild verifies that appBuild does not contain any characters outside of validCharacters.
|
|
||||||
// In case of any invalid characters checkAppBuild panics
|
|
||||||
func checkAppBuild(appBuild string) {
|
|
||||||
for _, r := range appBuild {
|
|
||||||
if !strings.ContainsRune(validCharacters, r) {
|
|
||||||
panic(fmt.Errorf("appBuild string (%s) contains forbidden characters. Only alphanumeric characters and dashes are allowed", appBuild))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user