From d4087be780c9fe4eb01446f7e677d890953d8ed3 Mon Sep 17 00:00:00 2001 From: Bert Jacobs Date: Mon, 13 Sep 2021 18:26:01 +0200 Subject: [PATCH] Move shared *Path functions to util.go --- link.go | 46 ---------------------------------------------- util.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/link.go b/link.go index aae10e6..c583ed3 100644 --- a/link.go +++ b/link.go @@ -30,52 +30,6 @@ import ( "strconv" ) -func cleanPath(loc string, flags int) (bool, error) { - if info, _ := os.Lstat(loc); info != nil { - if info.Mode()&os.ModeSymlink == 0 { - shouldContinue := false - if flags&flagClobber == 0 { - shouldContinue = prompt("clobber path", loc) - } - if flags&flagClobber != 0 || shouldContinue { - if flags&flagVerbose != 0 { - log.Printf("clobbering path: %s", loc) - } - if err := try(func() error { return os.RemoveAll(loc) }) ; err != nil { - return false, err - } - } else { - return false, nil - } - } else { - if flags&flagVerbose != 0 { - log.Printf("removing symlink: %s", loc) - } - if err := try(func() error { return os.Remove(loc) }); err != nil { - return false, err - } - } - } - return true, nil -} - -func createPath(loc string, flags int, mode os.FileMode) error { - parentDir := path.Dir(loc) - - if _, err := os.Stat(parentDir); os.IsNotExist(err) { - if flags&flagForce != 0 || prompt("force create path", parentDir) { - if flags&flagVerbose != 0 { - log.Printf("force creating path: %s", parentDir) - } - if err := os.MkdirAll(parentDir, mode); err != nil { - return err - } - } - } - - return nil -} - func parseLink(params []string) (srcPath, dstPath string, mode os.FileMode, err error) { length := len(params) if length < 1 || length > 3 { diff --git a/util.go b/util.go index 58a4374..3d16e6f 100644 --- a/util.go +++ b/util.go @@ -26,6 +26,7 @@ import ( "fmt" "log" "os" + "path" "path/filepath" "strings" ) @@ -47,6 +48,52 @@ func makeAbsPath(path string) string { return path } +func cleanPath(loc string, flags int) (bool, error) { + if info, _ := os.Lstat(loc); info != nil { + if info.Mode()&os.ModeSymlink == 0 { + shouldContinue := false + if flags&flagClobber == 0 { + shouldContinue = prompt("clobber path", loc) + } + if flags&flagClobber != 0 || shouldContinue { + if flags&flagVerbose != 0 { + log.Printf("clobbering path: %s", loc) + } + if err := try(func() error { return os.RemoveAll(loc) }) ; err != nil { + return false, err + } + } else { + return false, nil + } + } else { + if flags&flagVerbose != 0 { + log.Printf("removing symlink: %s", loc) + } + if err := try(func() error { return os.Remove(loc) }); err != nil { + return false, err + } + } + } + return true, nil +} + +func createPath(loc string, flags int, mode os.FileMode) error { + parentDir := path.Dir(loc) + + if _, err := os.Stat(parentDir); os.IsNotExist(err) { + if flags&flagForce != 0 || prompt("force create path", parentDir) { + if flags&flagVerbose != 0 { + log.Printf("force creating path: %s", parentDir) + } + if err := os.MkdirAll(parentDir, mode); err != nil { + return err + } + } + } + + return nil +} + func makeVariantNames(name, variant string) []string { if nameParts := strings.Split(name, "__"); len(nameParts) > 1 { variant = nameParts[len(nameParts)-1]