]> Cypherpunks.ru repositories - goredo.git/blobdiff - sources.go
Do not use legacy os.IsNotExist
[goredo.git] / sources.go
index b11d9dfb60cfcf3f3e7913d94a90fa47a9ce7ff5..d53e0e32501b880be35e737cf377602cf9f3ed5e 100644 (file)
@@ -1,6 +1,6 @@
 /*
 goredo -- djb's redo implementation on pure Go
-Copyright (C) 2020-2022 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
@@ -21,41 +21,34 @@ import (
        "log"
        "os"
        "path"
-       "path/filepath"
 )
 
 func sourcesWalker(tgts []string) ([]string, error) {
        seen := make(map[string]struct{}, 1<<10)
        for _, tgt := range tgts {
-               tgtAbsPath, err := filepath.Abs(path.Join(Cwd, tgt))
-               if err != nil {
-                       panic(err)
-               }
+               tgtAbsPath := mustAbs(path.Join(Cwd, tgt))
                cwd, f := path.Split(path.Join(Cwd, tgt))
                fdDep, err := os.Open(path.Join(cwd, RedoDir, f+DepSuffix))
                if err != nil {
-                       if os.IsNotExist(err) {
+                       if errors.Is(err, fs.ErrNotExist) {
                                continue
                        }
-                       return nil, err
+                       return nil, ErrLine(err)
                }
                depInfo, err := depRead(fdDep)
                fdDep.Close()
                if err != nil {
-                       return nil, err
+                       return nil, ErrLine(err)
                }
                for _, m := range depInfo.ifchanges {
                        depTgt := m["Target"]
-                       depTgtAbsPath, err := filepath.Abs(path.Join(cwd, depTgt))
-                       if err != nil {
-                               panic(err)
-                       }
+                       depTgtAbsPath := mustAbs(path.Join(cwd, depTgt))
                        if isSrc(cwd, depTgt) {
                                seen[cwdMustRel(depTgtAbsPath)] = struct{}{}
                        } else if depTgtAbsPath != tgtAbsPath {
                                subSrcs, err := sourcesWalker([]string{cwdMustRel(depTgtAbsPath)})
                                if err != nil {
-                                       log.Fatalln(err)
+                                       log.Fatal(err)
                                }
                                for _, p := range subSrcs {
                                        seen[p] = struct{}{}