public inbox for goredo-devel@lists.cypherpunks.ru
Atom feed
* [PATCH] Don't create nested target directories automatically
@ 2022-04-15  0:55 Andrew Chambers
  2022-04-15  6:10 ` goredo
  2022-04-15 16:23 ` Sergey Matveev
  0 siblings, 2 replies; 15+ messages in thread
From: Andrew Chambers @ 2022-04-15  0:55 UTC (permalink / raw)
  To: goredo-devel; +Cc: Andrew Chambers

If a user mistypes a rule, goredo creates those directories automatically
leaving junk on the filesystem. This change means higher level rules must
create those directories explicitly if needed.
---
 run.go | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/run.go b/run.go
index 32e3800..1a657a3 100644
--- a/run.go
+++ b/run.go
@@ -123,13 +123,6 @@ func (e RunError) Error() string {
 	return fmt.Sprintf("%s: %s", e.Name(), e.Err)
 }
 
-func mkdirs(pth string) error {
-	if _, err := os.Stat(pth); err == nil {
-		return nil
-	}
-	return os.MkdirAll(pth, os.FileMode(0777))
-}
-
 func isModified(cwd, redoDir, tgt string) (bool, *Inode, string, error) {
 	fdDep, err := os.Open(path.Join(redoDir, tgt+DepSuffix))
 	if err != nil {
@@ -190,7 +183,11 @@ func syncDir(dir string) error {
 func runScript(tgtOrig string, errs chan error, traced bool) error {
 	cwd, tgt := cwdAndTgt(tgtOrig)
 	redoDir := path.Join(cwd, RedoDir)
-	if err := mkdirs(redoDir); err != nil {
+
+	if err := os.Mkdir(redoDir, os.FileMode(0777)); err != nil && !os.IsExist(err) {
+		if os.IsNotExist(err) {
+			return TgtError{tgtOrig, fmt.Errorf("target directory does not exist")}
+		}
 		return TgtError{tgtOrig, err}
 	}
 
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2022-04-16  0:36 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-15  0:55 [PATCH] Don't create nested target directories automatically Andrew Chambers
2022-04-15  6:10 ` goredo
2022-04-15  6:49   ` Andrew Chambers
2022-04-15  7:15     ` goredo
2022-04-15  7:31       ` Andrew Chambers
2022-04-15  9:28         ` goredo
2022-04-15 12:00           ` Andrew Chambers
2022-04-15 13:17             ` goredo
2022-04-15 13:39               ` Andrew Chambers
2022-04-15 13:58                 ` goredo
2022-04-15 16:23               ` Sergey Matveev
2022-04-16  0:36                 ` Andrew Chambers
2022-04-15 16:23     ` Sergey Matveev
2022-04-15  6:57   ` Andrew Chambers
2022-04-15 16:23 ` Sergey Matveev