mirror of
https://github.com/turbot/steampipe.git
synced 2026-02-19 16:00:13 -05:00
48 lines
1006 B
Go
48 lines
1006 B
Go
package modconfig
|
|
|
|
import (
|
|
"github.com/Masterminds/semver/v3"
|
|
"github.com/turbot/steampipe-plugin-sdk/v5/sperr"
|
|
)
|
|
|
|
type PluginVersionString struct {
|
|
version string
|
|
semver *semver.Version
|
|
}
|
|
|
|
func NewPluginVersionString(version string) (*PluginVersionString, error) {
|
|
if smv, err := semver.NewVersion(version); err == nil {
|
|
pluginVersion := &PluginVersionString{
|
|
version: version,
|
|
semver: smv,
|
|
}
|
|
return pluginVersion, nil
|
|
}
|
|
if version == "local" {
|
|
return LocalPluginVersionString(), nil
|
|
}
|
|
return nil, sperr.New("version must be a valid semver or 'local'; got: %s", version)
|
|
}
|
|
|
|
func LocalPluginVersionString() *PluginVersionString {
|
|
return &PluginVersionString{
|
|
version: "local",
|
|
}
|
|
}
|
|
|
|
func (p *PluginVersionString) IsLocal() bool {
|
|
return p.semver == nil
|
|
}
|
|
|
|
func (p *PluginVersionString) IsSemver() bool {
|
|
return p.semver != nil
|
|
}
|
|
|
|
func (p *PluginVersionString) Semver() *semver.Version {
|
|
return p.semver
|
|
}
|
|
|
|
func (p *PluginVersionString) String() string {
|
|
return p.version
|
|
}
|