From 9c42f3c47507ac8fd6300c356314b59f6cc22644 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 18 Dec 2024 12:46:11 -0700 Subject: [PATCH] Only import files into site overlays Signed-off-by: Jonathon Anderson --- internal/app/wwctl/overlay/imprt/main.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/internal/app/wwctl/overlay/imprt/main.go b/internal/app/wwctl/overlay/imprt/main.go index fd76d33f..8a890bb1 100644 --- a/internal/app/wwctl/overlay/imprt/main.go +++ b/internal/app/wwctl/overlay/imprt/main.go @@ -13,7 +13,7 @@ import ( "github.com/warewulf/warewulf/internal/pkg/wwlog" ) -func CobraRunE(cmd *cobra.Command, args []string) error { +func CobraRunE(cmd *cobra.Command, args []string) (err error) { var dest string overlayName := args[0] @@ -27,7 +27,12 @@ func CobraRunE(cmd *cobra.Command, args []string) error { wwlog.Verbose("Copying '%s' into overlay '%s:%s'", source, overlayName, dest) overlay_ := overlay.GetOverlay(overlayName) - + if !overlay_.IsSiteOverlay() { + overlay_, err = overlay_.CloneSiteOverlay() + if err != nil { + return err + } + } if !overlay_.Exists() { return fmt.Errorf("overlay does not exist: %s", overlayName) } @@ -42,7 +47,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { if CreateDirs { parent := filepath.Dir(overlay_.File(dest)) - if _, err := os.Stat(parent); os.IsNotExist(err) { + if _, err = os.Stat(parent); os.IsNotExist(err) { wwlog.Debug("Create dir: %s", parent) srcInfo, err := os.Stat(source) if err != nil { @@ -55,7 +60,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { } } - err := util.CopyFile(source, overlay_.File(dest)) + err = util.CopyFile(source, overlay_.File(dest)) if err != nil { return fmt.Errorf("could not copy file into overlay: %w", err) }