public inbox for goredo-devel@lists.cypherpunks.ru
Atom feed
From: Andrew Chambers <ac@acha•ninja>
To: goredo-devel@lists.cypherpunks.ru
Cc: Andrew Chambers <ac@acha•ninja>
Subject: [PATCH] Don't create nested target directories automatically
Date: Fri, 15 Apr 2022 12:55:59 +1200	[thread overview]
Message-ID: <20220415005559.3682838-1-ac@acha.ninja> (raw)

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


             reply	other threads:[~2022-04-15  1:30 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-15  0:55 Andrew Chambers [this message]
2022-04-15  6:10 ` [PATCH] Don't create nested target directories automatically 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