]> Cypherpunks.ru repositories - goredo.git/blobdiff - buildlog.go
Add information about error occurrence place
[goredo.git] / buildlog.go
index a260867e8a5a7770fd830833fb2f6bcdcb7a8302..3bf3ce07f5bd0c4073d079b63d1a06253f13021c 100644 (file)
@@ -78,12 +78,12 @@ func init() {
 func parseBuildLogRec(dir, tgt string) (map[string][]string, error) {
        fd, err := os.Open(path.Join(dir, RedoDir, tgt+LogRecSuffix))
        if err != nil {
-               return nil, err
+               return nil, ErrLine(err)
        }
        r := recfile.NewReader(bufio.NewReader(fd))
        rec, err := r.NextMapWithSlice()
        fd.Close()
-       return rec, err
+       return rec, ErrLine(err)
 }
 
 func depthPrefix(depth int) string {
@@ -113,7 +113,7 @@ func showBuildLogSub(sub *BuildLogJob, depth int) error {
        }
        durationSec, durationNsec, err := durationToInts(sub.rec["Duration"][0])
        if err != nil {
-               return err
+               return ErrLine(err)
        }
        if sub.exitCode > 0 {
                fmt.Printf(
@@ -144,7 +144,7 @@ func durationToInts(d string) (int64, int64, error) {
 func showBuildLogCmd(m map[string][]string, depth int) error {
        started, err := tai64n.Decode(m["Started"][0])
        if err != nil {
-               return err
+               return ErrLine(err)
        }
        dp := depthPrefix(depth)
        fmt.Printf(
@@ -156,11 +156,11 @@ func showBuildLogCmd(m map[string][]string, depth int) error {
        }
        finished, err := tai64n.Decode(m["Finished"][0])
        if err != nil {
-               return err
+               return ErrLine(err)
        }
        durationSec, durationNsec, err := durationToInts(m["Duration"][0])
        if err != nil {
-               return err
+               return ErrLine(err)
        }
        fmt.Printf(
                "%s%sStarted:\t%s\n%s%sFinished:\t%s\n%s%sDuration:\t%d.%ds\n\n",
@@ -187,7 +187,7 @@ func showBuildLog(dir, tgt string, buildLogRec map[string][]string, depth int) e
        }
        fd, err := os.Open(path.Join(dirNormalized, RedoDir, tgtNormalized+LogSuffix))
        if err != nil {
-               return err
+               return ErrLine(err)
        }
        if !*flagBuildLogRecursive {
                w := bufio.NewWriter(os.Stdout)
@@ -195,9 +195,9 @@ func showBuildLog(dir, tgt string, buildLogRec map[string][]string, depth int) e
                fd.Close()
                if err != nil {
                        w.Flush()
-                       return err
+                       return ErrLine(err)
                }
-               return w.Flush()
+               return ErrLine(w.Flush())
        }
        defer fd.Close()
        subs := make([]*BuildLogJob, 0, len(buildLogRec["Ifchange"]))
@@ -218,13 +218,13 @@ func showBuildLog(dir, tgt string, buildLogRec map[string][]string, depth int) e
                }
                started, err := tai64n.Decode(rec["Started"][0])
                if err != nil {
-                       return err
+                       return ErrLine(err)
                }
                var exitCode int
                if len(rec["ExitCode"]) > 0 {
                        exitCode, err = strconv.Atoi(rec["ExitCode"][0])
                        if err != nil {
-                               return err
+                               return ErrLine(err)
                        }
                }
                subs = append(subs, &BuildLogJob{
@@ -248,13 +248,13 @@ func showBuildLog(dir, tgt string, buildLogRec map[string][]string, depth int) e
        for {
                if !scanner.Scan() {
                        if err = scanner.Err(); err != nil {
-                               return err
+                               return ErrLine(err)
                        }
                        break
                }
                text = scanner.Text()
                if text[0] != '@' {
-                       return errors.New("unexpected non-TAI64Ned string")
+                       return ErrLine(errors.New("unexpected non-TAI64Ned string"))
                }
                sep = strings.IndexByte(text, byte(' '))
                if sep == -1 {
@@ -262,7 +262,7 @@ func showBuildLog(dir, tgt string, buildLogRec map[string][]string, depth int) e
                }
                t, err = tai64n.Decode(text[1:sep])
                if err != nil {
-                       return err
+                       return ErrLine(err)
                }
                for sub != nil && t.After(sub.started) {
                        if err = showBuildLogSub(sub, depth); err != nil {