2.9.0
* Warn if non-top target did not write anything.
Idea was borrowed from redo-sh.
+ * Clean up temporary files if got SIGINT or SIGTERM signals.
A 2.8.0\r
2.8.0
go func() {
<-killed
tracef(CDebug, "[%s] killed", BuildUUID)
+ for fn := range TmpsToClean {
+ tracef(CDebug, "[%s] clean tempfile: %s", BuildUUID, fn)
+ os.Remove(fn)
+ }
jsReleaseAll()
RunningProcsM.Lock()
for pid, proc := range RunningProcs {
StderrPrefix string
StopIfMod = false
Jobs sync.WaitGroup
+ TmpsToClean = make(map[string]struct{})
flagTrace *bool
flagTraceAll *bool
lockRelease()
return TgtError{tgt, ErrLine(err)}
}
+ TmpsToClean[fdDep.Name()] = struct{}{}
fdDepOpened := true
fdDepExists := true
fdDepW := bufio.NewWriter(fdDep)
fdDep.Close()
}
if fdDepExists {
+ delete(TmpsToClean, fdDep.Name())
os.Remove(fdDep.Name())
}
}
cleanup()
return TgtError{tgt, ErrLine(err)}
}
+ TmpsToClean[fdStdout.Name()] = struct{}{}
fdStdout.Close()
tmpPath := fdStdout.Name() + ".3" // and for $3
tmpPathRel := mustRel(cwd, tmpPath)
}
lockRelease()
if fdDepExists {
+ delete(TmpsToClean, fdDep.Name())
os.Remove(fdDep.Name())
}
+ delete(TmpsToClean, fdStdout.Name())
os.Remove(fdStdout.Name())
+ delete(TmpsToClean, tmpPath)
os.Remove(tmpPath)
if FdStatus != nil {
if _, err = FdStatus.Write([]byte{StatusDone}); err != nil {
if err != nil {
goto Finish
}
+ delete(TmpsToClean, fdDep.Name())
fdDepExists = false
if !NoSync {
err = ErrLine(syncDir(redoDir))