]> Cypherpunks.ru repositories - goredo.git/blobdiff - buildlog.go
Raise copyright years in advance
[goredo.git] / buildlog.go
index 956cf4fdc9aa353b5abfca806e19cc8ae19c56ac..fcaf3704524e15cc5f44ed47c5d29e2269ecbe09 100644 (file)
@@ -1,6 +1,6 @@
 /*
 goredo -- djb's redo implementation on pure Go
-Copyright (C) 2020-2023 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2020-2024 Sergey Matveev <stargrave@stargrave.org>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -75,7 +75,8 @@ func init() {
 }
 
 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)
        }
@@ -93,15 +94,15 @@ func depthPrefix(depth int) string {
 }
 
 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
@@ -114,14 +115,14 @@ func showBuildLogSub(sub *BuildLogJob, depth int) error {
                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,
                )
        }
@@ -179,7 +180,8 @@ func showBuildLog(tgt *Tgt, buildLogRec map[string][]string, depth int) error {
                        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)
        }
@@ -196,8 +198,8 @@ func showBuildLog(tgt *Tgt, buildLogRec map[string][]string, depth int) error {
        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)