From 8f049f9ba48297f71dfa22a379a0213cead3ed2e Mon Sep 17 00:00:00 2001 From: Gregory Kurtzer Date: Wed, 24 Feb 2021 21:00:41 -0800 Subject: [PATCH] Added function for recursive file copy --- internal/pkg/util/util.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/internal/pkg/util/util.go b/internal/pkg/util/util.go index 36f12118..6b2a0ab5 100644 --- a/internal/pkg/util/util.go +++ b/internal/pkg/util/util.go @@ -8,6 +8,7 @@ import ( "math/rand" "os" "os/exec" + "path" "path/filepath" "regexp" "time" @@ -88,6 +89,40 @@ func CopyFile(source string, dest string) error { return destFD.Close() } +func CopyFiles(source string, dest string) error { + err := filepath.Walk(source, func(location string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + if info.IsDir() { + wwlog.Printf(wwlog.DEBUG, "Creating directory: %s\n", location) + + err := os.MkdirAll(path.Join(dest, location), info.Mode()) + if err != nil { + return err + } + + } else { + wwlog.Printf(wwlog.DEBUG, "Writing file: %s\n", location) + + err := CopyFile(location, path.Join(dest, location)) + if err != nil { + return err + } + + } + + return nil + }) + + if err != nil { + return err + } + + return nil +} + //TODO: func CopyRecursive ... func IsDir(path string) bool {