better handling of version/patch especiallly for snapshots, use updateWorkDir
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
//"log"
|
||||
"time"
|
||||
"strings"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
// Internal usage only
|
||||
@@ -18,19 +19,20 @@ func upgradeJail(jail *Jail, version string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
cfgFile.Write([]byte(fbsdUpdateConfig))
|
||||
|
||||
defer cfgFile.Close()
|
||||
defer os.Remove(cfgFile.Name())
|
||||
|
||||
// Folder containing update/uipgrade temporary files. Common so we save bandwith when upgrading multiple jails
|
||||
// TODO: Variabilize /iocage/freebsd-update
|
||||
_, err = os.Stat("/iocage/freebsd-update")
|
||||
// Folder containing update/upgrade temporary files. Mutualized so we save bandwith when upgrading multiple jails
|
||||
uwd := viper.GetString("updateWorkDir")
|
||||
if len(uwd) == 0 {
|
||||
return fmt.Errorf("updateWorkDir not set in configuration")
|
||||
}
|
||||
_, err = os.Stat(uwd)
|
||||
if os.IsNotExist(err) {
|
||||
if err := os.Mkdir("/iocage/freebsd-update", 0755); err != nil {
|
||||
if err := os.Mkdir(uwd, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
cfgFile.Write([]byte(strings.Replace(fbsdUpdateConfig, "TO-BE-REPLACED-WITH-UPDATEWORKDIR", uwd, 1)))
|
||||
defer cfgFile.Close()
|
||||
defer os.Remove(cfgFile.Name())
|
||||
|
||||
// Get current version. Won't work on stopped jail.
|
||||
fbsdvers, err := executeCommandInJail(jail, "/bin/freebsd-version")
|
||||
@@ -39,7 +41,6 @@ func upgradeJail(jail *Jail, version string) error {
|
||||
return err
|
||||
}
|
||||
fbsdvers = strings.TrimRight(fbsdvers, "\n")
|
||||
//fbsdvers := jail.Config.Release
|
||||
|
||||
cmd := fmt.Sprintf("/usr/sbin/freebsd-update -f %s -b %s --currently-running %s -r %s upgrade",
|
||||
cfgFile.Name(), jail.RootPath, fbsdvers, version)
|
||||
|
||||
Reference in New Issue
Block a user