X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=sources.go;h=4b77c6ebbb51f024877a6bb2e43ed775f2ec40ff;hb=0030b3e73152bf9d9ad3e435fa42e607c7865321;hp=0d361900527ca0aa1710e2daa7c96e8478075871;hpb=cb183690cc59ad772dab941adc3e9b8d5b90fbc0;p=goredo.git diff --git a/sources.go b/sources.go index 0d36190..4b77c6e 100644 --- a/sources.go +++ b/sources.go @@ -1,6 +1,6 @@ /* goredo -- djb's redo implementation on pure Go -Copyright (C) 2020-2021 Sergey Matveev +Copyright (C) 2020-2022 Sergey Matveev 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 @@ -18,6 +18,7 @@ along with this program. If not, see . package main import ( + "log" "os" "path" "path/filepath" @@ -33,9 +34,15 @@ func sourcesWalker(tgts []string) ([]string, error) { 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) { + continue + } return nil, err } depInfo, err := depRead(fdDep) + if err != nil { + return nil, err + } fdDep.Close() for _, m := range depInfo.ifchanges { depTgt := m["Target"] @@ -48,7 +55,7 @@ func sourcesWalker(tgts []string) ([]string, error) { } else if depTgtAbsPath != tgtAbsPath { subSrcs, err := sourcesWalker([]string{cwdMustRel(depTgtAbsPath)}) if err != nil { - panic(err) + log.Fatalln(err) } for _, p := range subSrcs { seen[p] = struct{}{}