Files
warewulf/internal/pkg/util/version.go
Jonathon Anderson 8f21d54243 Refactor kernel support
- Remove kernel imports and kmods images
- Repurpose KernelOverride as container path
- Support Kernel.Version as version prefix for kernel selection
- Compare initramfs by version

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-09 10:02:22 +01:00

27 lines
498 B
Go

package util
import (
"regexp"
"strings"
"github.com/hashicorp/go-version"
)
var (
versionPattern *regexp.Regexp
)
func init() {
versionPattern = regexp.MustCompile(`\d+\.\d+\.\d+(-[\d\.]+|)`)
}
func ParseVersion(versionString string) *version.Version {
matches := versionPattern.FindAllString(versionString, -1)
for i := len(matches) - 1; i >= 0; i-- {
if version_, err := version.NewVersion(strings.TrimSuffix(matches[i], ".")); err == nil {
return version_
}
}
return nil
}