Files
steampipe/pkg/steampipeconfig/modconfig/plugin_version_string.go
2023-08-17 13:52:04 +05:30

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
}