}
func parseBuildLogRec(tgt *Tgt) (map[string][]string, error) {
- fd, err := os.Open(path.Join(tgt.h, RedoDir, tgt.t+LogRecSuffix))
+ h, t := path.Split(tgt.a)
+ fd, err := os.Open(path.Join(h, RedoDir, t+LogRecSuffix))
if err != nil {
return nil, ErrLine(err)
}
}
func showBuildLogSub(sub *BuildLogJob, depth int) error {
- if _, ok := buildLogSeen[sub.tgt.a]; ok {
+ if _, ok := buildLogSeen[sub.tgt.rel]; ok {
return nil
}
- buildLogSeen[sub.tgt.a] = struct{}{}
+ buildLogSeen[sub.tgt.rel] = struct{}{}
dp := depthPrefix(depth)
fmt.Printf(
"%s%s%s\n",
sub.rec["Started"][0], dp,
- colourize(CRedo, "redo "+sub.tgt.String()),
+ colourize(CRedo, "redo "+sub.tgt.rel),
)
if err := showBuildLog(sub.tgt, sub.rec, depth+1); err != nil {
return err
fmt.Printf(
"%s%s%s (code: %d) (%d.%ds)\n\n",
sub.rec["Finished"][0], dp,
- colourize(CErr, "err "+sub.tgt.String()),
+ colourize(CErr, "err "+sub.tgt.rel),
sub.exitCode, durationSec, durationNsec,
)
} else {
fmt.Printf(
"%s%s%s (%d.%ds)\n\n",
sub.rec["Finished"][0], dp,
- colourize(CRedo, "done "+sub.tgt.String()),
+ colourize(CRedo, "done "+sub.tgt.rel),
durationSec, durationNsec,
)
}
return err
}
}
- fd, err := os.Open(path.Join(tgt.h, RedoDir, tgt.t+LogSuffix))
+ tgtH, tgtT := path.Split(tgt.a)
+ fd, err := os.Open(path.Join(tgtH, RedoDir, tgtT+LogSuffix))
if err != nil {
return ErrLine(err)
}
defer fd.Close()
subs := make([]*BuildLogJob, 0, len(buildLogRec["Ifchange"]))
for _, depPath := range buildLogRec["Ifchange"] {
- dep := NewTgt(path.Join(tgt.h, depPath))
- if dep.a == tgt.a {
+ dep := NewTgt(path.Join(tgtH, depPath))
+ if dep.rel == tgt.rel {
continue
}
rec, err := parseBuildLogRec(dep)