From e0ab4e47f4f3a7c3ab3d09ddf6f0e1033307f4ed Mon Sep 17 00:00:00 2001 From: mslacken Date: Fri, 14 Jan 2022 16:56:18 +0100 Subject: [PATCH] Added handling of symbolic links in overlays --- internal/pkg/overlay/overlay.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/pkg/overlay/overlay.go b/internal/pkg/overlay/overlay.go index 06104b40..49342927 100644 --- a/internal/pkg/overlay/overlay.go +++ b/internal/pkg/overlay/overlay.go @@ -262,6 +262,16 @@ func BuildOverlay(nodeInfo node.NodeInfo, overlayName string) error { // } else if b, _ := regexp.MatchString(`\.ww[a-zA-Z0-9\-\._]*$`, location); b { // wwlog.Printf(wwlog.DEBUG, "Ignoring WW template file: %s\n", location) + } else if info.Mode()&os.ModeSymlink == os.ModeSymlink { + wwlog.Printf(wwlog.DEBUG, "Found symlink %s\n", location) + destination, err := os.Readlink(location) + if err != nil { + wwlog.Printf(wwlog.ERROR, "%s\n", err) + } + err = os.Symlink(destination, path.Join(tmpDir, location)) + if err != nil { + wwlog.Printf(wwlog.ERROR, "%s\n", err) + } } else { err := util.CopyFile(location, path.Join(tmpDir, location))