The option cow can now be set for files which are then mounted during exec, but copied into the image and removed if not modified. Signed-off-by: Christian Goll <cgoll@suse.com>
42 lines
931 B
Go
42 lines
931 B
Go
package container
|
|
|
|
import (
|
|
"strings"
|
|
|
|
warewulfconf "github.com/warewulf/warewulf/internal/pkg/config"
|
|
"github.com/warewulf/warewulf/internal/pkg/wwlog"
|
|
)
|
|
|
|
/*
|
|
Create a slice iof MntDetails from a string slice with following
|
|
format "source:[:destination][:readonly]" if destination is not
|
|
given, the source is used as destination
|
|
*/
|
|
func InitMountPnts(binds []string) (mounts []*warewulfconf.MountEntry) {
|
|
wwlog.Debug("Trying to mount following mount points: %s", mounts)
|
|
for _, b := range binds {
|
|
bind := strings.Split(b, ":")
|
|
dest := bind[0]
|
|
if len(bind) >= 2 {
|
|
dest = bind[1]
|
|
}
|
|
readonly := false
|
|
cow := false
|
|
if len(bind) >= 3 {
|
|
if bind[2] == "ro" {
|
|
readonly = true
|
|
} else if bind[2] == "cow" {
|
|
cow = true
|
|
}
|
|
}
|
|
mntPnt := warewulfconf.MountEntry{
|
|
Source: bind[0],
|
|
Dest: dest,
|
|
ReadOnly: readonly,
|
|
Cow: cow,
|
|
}
|
|
mounts = append(mounts, &mntPnt)
|
|
}
|
|
return mounts
|
|
}
|