1
0
mirror of https://github.com/owncloud/ocis.git synced 2025-04-18 23:44:07 +03:00
ocis/ocis-pkg/version/version.go
Julian Koberg 1f0e3b9419 feat(ocis): release 7.1.0-rc.6
Signed-off-by: Julian Koberg <jkoberg@MBP-Julian-Koberg.local>
2025-03-31 12:00:50 +02:00

79 lines
1.8 KiB
Go

package version
import (
"time"
"github.com/Masterminds/semver"
)
var (
// String gets defined by the build system
String string
// Tag gets defined by the build system
Tag string
// LatestTag is the latest released version plus the dev meta version.
// Will be overwritten by the release pipeline
// Needs a manual change for every tagged release
LatestTag = "7.1.2+dev"
// Date indicates the build date.
// This has been removed, it looks like you can only replace static strings with recent go versions
//Date = time.Now().Format("20060102")
Date = "dev"
// Legacy defines the old long 4 number ownCloud version needed for some clients
Legacy = "10.11.0.0"
// LegacyString defines the old ownCloud version needed for some clients
LegacyString = "10.11.0"
)
// Compiled returns the compile time of this service.
func Compiled() time.Time {
if Date == "dev" {
return time.Now()
}
t, _ := time.Parse("20060102", Date)
return t
}
// GetString returns a version string with pre-releases and metadata
func GetString() string {
return Parsed().String()
}
// Parsed returns a semver Version
func Parsed() (version *semver.Version) {
versionToParse := LatestTag
if Tag != "" {
versionToParse = Tag
}
version, err := semver.NewVersion(versionToParse)
// We have no semver version but a commitid
if err != nil {
// this should never happen
if err != nil {
return &semver.Version{}
}
}
if String != "" {
nVersion, err := version.SetMetadata(String)
if err != nil {
return &semver.Version{}
}
version = &nVersion
}
return version
}
// ParsedLegacy returns the legacy version
func ParsedLegacy() *semver.Version {
parsedVersion, err := semver.NewVersion(LegacyString)
if err != nil {
return &semver.Version{}
}
return parsedVersion
}