better handling of version/patch especiallly for snapshots, use updateWorkDir
This commit is contained in:
+32
-4
@@ -8,6 +8,7 @@ import (
|
||||
"sort"
|
||||
"bufio"
|
||||
"errors"
|
||||
"regexp"
|
||||
"os/exec"
|
||||
"reflect"
|
||||
"strconv"
|
||||
@@ -1110,13 +1111,10 @@ func getDevfsRuleset(ruleset int) []string {
|
||||
if err != nil {
|
||||
return []string{}
|
||||
}
|
||||
// Get rid of the last "\n"
|
||||
return strings.Split(out, "\n")[:len(strings.Split(out, "\n"))-1]
|
||||
return strings.Split(out, "\n")[:len(strings.Split(out, "\n"))]
|
||||
}
|
||||
|
||||
func copyDevfsRuleset(ruleset int, srcrs int) error {
|
||||
// Resulting ruleset as an array of line
|
||||
//var result []string
|
||||
out := getDevfsRuleset(srcrs)
|
||||
for _, line := range out {
|
||||
//fields := strings.Fields(line)
|
||||
@@ -1287,6 +1285,36 @@ func setJailConfigUpdated(jail *Jail) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func freebsdVersionToStruct(rawVersion string) (FreeBSDVersion, error) {
|
||||
var version FreeBSDVersion
|
||||
var err error
|
||||
|
||||
regex := `([0-9]{1,2})(\.)?([0-9]{1,2})?\-([^\-]*)(\-)?(p[0-9]{1,2})?`
|
||||
|
||||
re := regexp.MustCompile(regex)
|
||||
|
||||
if re.MatchString(rawVersion) {
|
||||
version.major, err = strconv.Atoi(re.FindStringSubmatch(rawVersion)[1])
|
||||
if err != nil {
|
||||
return version, err
|
||||
}
|
||||
version.minor, err = strconv.Atoi(re.FindStringSubmatch(rawVersion)[3])
|
||||
if err != nil {
|
||||
return version, err
|
||||
}
|
||||
version.flavor = strings.Trim(re.FindStringSubmatch(rawVersion)[4], "\n")
|
||||
|
||||
// Skip the 'p' starting patch level
|
||||
if len(re.FindStringSubmatch(rawVersion)[6]) > 0 {
|
||||
version.patchLevel, err = strconv.Atoi(re.FindStringSubmatch(rawVersion)[6][1:])
|
||||
if err != nil {
|
||||
return version, err
|
||||
}
|
||||
}
|
||||
}
|
||||
return version, nil
|
||||
}
|
||||
|
||||
func getVersion(jail *Jail) (string, error) {
|
||||
cvers, err := executeCommand(fmt.Sprintf("%s/bin/freebsd-version", jail.RootPath))
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user