X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=run.go;h=ca8eebbcd9ca542dd7c9f31e77dfaca18eb4b7de;hb=3d2efdb8e781a148ab3633405534534dfd8c7545;hp=d31c8a0c5a4ffb52816cb74d90de5536c8fe515b;hpb=46e189a9c6398c1ab1245ab1e9827b959db29219;p=goredo.git diff --git a/run.go b/run.go index d31c8a0..ca8eebb 100644 --- a/run.go +++ b/run.go @@ -52,11 +52,12 @@ const ( EnvStderrSilent = "REDO_SILENT" EnvNoSync = "REDO_NO_SYNC" - RedoDir = ".redo" - LockSuffix = ".lock" - DepSuffix = ".rec" - TmpPrefix = ".redo." - LogSuffix = ".log" + RedoDir = ".redo" + LockSuffix = ".lock" + DepSuffix = ".rec" + TmpPrefix = ".redo." + LogSuffix = ".log" + LogRecSuffix = ".log-rec" ) var ( @@ -384,14 +385,13 @@ func runScript(tgtOrig string, errs chan error, traced bool) error { if StderrKeep { fdStderr, err = os.OpenFile( path.Join(redoDir, tgt+LogSuffix), - os.O_WRONLY|os.O_CREATE, + os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.FileMode(0666), ) if err != nil { cleanup() return TgtErr{tgtOrig, err} } - fdStderr.Truncate(0) } shCtx := fmt.Sprintf( "sh: %s: %s %s cwd:%s dirprefix:%s", @@ -448,13 +448,12 @@ func runScript(tgtOrig string, errs chan error, traced bool) error { fdStdout.Close() if fdStderr != nil { fdStderr.Close() - logRecPath := path.Join(redoDir, tgt+LogSuffix+DepSuffix) + logRecPath := path.Join(redoDir, tgt+LogRecSuffix) if fdStderr, err = os.OpenFile( logRecPath, - os.O_WRONLY|os.O_CREATE, + os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.FileMode(0666), ); err == nil { - fdStderr.Truncate(0) fields := []recfile.Field{ {Name: "Build", Value: BuildUUID}, {Name: "PID", Value: strconv.Itoa(cmd.Process.Pid)}, @@ -489,7 +488,7 @@ func runScript(tgtOrig string, errs chan error, traced bool) error { w := bufio.NewWriter(fdStderr) var depInfo *DepInfo - fdDep, err = os.Open(fdDep.Name()) + fdDep, err := os.Open(fdDepPath) if err != nil { goto Err } @@ -671,7 +670,8 @@ func runScript(tgtOrig string, errs chan error, traced bool) error { goto Finish } } - err = os.Rename(fdDep.Name(), path.Join(redoDir, tgt+DepSuffix)) + fdDepPath = path.Join(redoDir, tgt+DepSuffix) + err = os.Rename(fdDep.Name(), fdDepPath) if err != nil { goto Finish }