diff --git a/conf/conf.go b/conf/conf.go index 52bbffae..be4f2f13 100644 --- a/conf/conf.go +++ b/conf/conf.go @@ -14,6 +14,16 @@ import ( "path" ) +const ( + AppMajor uint = 0 + AppMinor uint = 0 + AppPatch uint = 1 + + // AppPreRelease MUST only contain characters from semanticAlphabet + // per the semantic versioning spec. + AppPreRelease = "beta" +) + const ( tagName = "default" diff --git a/conf/version.go b/conf/version.go deleted file mode 100644 index 636ba41d..00000000 --- a/conf/version.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) 2013-2014 The btcsuite developers -// Use of this source code is governed by an ISC -// license that can be found in the LICENSE file. - -package conf - -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 = 0 - AppPatch uint = 1 - - // 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) { - result.WriteRune(r) - } - } - return result.String() -}