From 19695856eee49cc722ddda4325a5e84d9d2c4644 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Thu, 13 Feb 2020 11:47:19 -0800 Subject: [PATCH] Skip mkdir if there is no work to be done --- pkg/minikube/cluster/filesync.go | 37 ++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/pkg/minikube/cluster/filesync.go b/pkg/minikube/cluster/filesync.go index c8356debb2..7007631426 100644 --- a/pkg/minikube/cluster/filesync.go +++ b/pkg/minikube/cluster/filesync.go @@ -31,6 +31,15 @@ import ( "k8s.io/minikube/pkg/minikube/vmpath" ) +// guaranteed are directories we don't need to attempt recreation of +var guaranteed = map[string]bool{ + "/": true, + "": true, + "/etc": true, + "/var": true, + "/tmp": true, +} + // syncLocalAssets syncs files from MINIKUBE_HOME into the cluster func syncLocalAssets(cr command.Runner) error { fs, err := localAssets() @@ -38,20 +47,30 @@ func syncLocalAssets(cr command.Runner) error { return err } - dirs := map[string]bool{} + if len(fs) == 0 { + return nil + } + + // Deduplicate the list of directories to create + seen := map[string]bool{} + create := []string{} for _, f := range fs { - dirs[f.GetTargetDir()] = true + dir := f.GetTargetDir() + if guaranteed[dir] || seen[dir] { + continue + } + create = append(create, dir) } - args := []string{"mkdir", "-p"} - for k := range dirs { - args = append(args, k) - } - cmd := exec.Command("sudo", args...) - if _, err := cr.RunCmd(cmd); err != nil { - return err + // Create directories that are not guaranteed to exist + if len(create) > 0 { + args := append([]string{"mkdir", "-p"}, create...) + if _, err := cr.RunCmd(exec.Command("sudo", args...)); err != nil { + return err + } } + // Copy the files into place for _, f := range fs { err := cr.Copy(f) if err != nil {