]> Cypherpunks.ru repositories - goredo.git/blobdiff - buildlog.go
Remove useless check
[goredo.git] / buildlog.go
index fc12ac78e894b24697729933f0ae0a930701ea0f..b0d2f2d620b1961a306576594c501517f88763f7 100644 (file)
@@ -1,6 +1,6 @@
 /*
 goredo -- djb's redo implementation on pure Go
-Copyright (C) 2020-2021 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2020-2023 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
@@ -23,9 +23,9 @@ import (
        "flag"
        "fmt"
        "io"
+       "io/fs"
        "os"
        "path"
-       "path/filepath"
        "sort"
        "strconv"
        "strings"
@@ -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 {
@@ -94,10 +94,7 @@ func depthPrefix(depth int) string {
 }
 
 func showBuildLogSub(sub *BuildLogJob, depth int) error {
-       abs, err := filepath.Abs(path.Join(sub.dir, sub.tgt))
-       if err != nil {
-               return err
-       }
+       abs := mustAbs(path.Join(sub.dir, sub.tgt))
        if _, ok := buildLogSeen[abs]; ok {
                return nil
        }
@@ -113,7 +110,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 +141,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 +153,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 +184,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 +192,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"]))
@@ -208,7 +205,7 @@ func showBuildLog(dir, tgt string, buildLogRec map[string][]string, depth int) e
                }
                rec, err := parseBuildLogRec(subDir, subTgt)
                if err != nil {
-                       if os.IsNotExist(err) {
+                       if errors.Is(err, fs.ErrNotExist) {
                                continue
                        }
                        return err
@@ -218,13 +215,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 +245,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 +259,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 {