package nncp
import (
+ "errors"
"fmt"
+ "io/fs"
"os"
"path/filepath"
"sort"
func cfgDirLoad(src ...string) (v string, exists bool, err error) {
b, err := os.ReadFile(filepath.Join(src...))
if err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
return "", false, nil
}
return "", false, err
}
fis, err := os.ReadDir(filepath.Join(src, "mcd-send"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
if len(fis) > 0 {
}
}
fis, err = os.ReadDir(filepath.Join(src, "notify", "exec"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
for _, fi := range fis {
return nil, err
}
cfg.Self = &self
- } else if !os.IsNotExist(err) {
+ } else if !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
cfg.Neigh = make(map[string]NodeJSON)
fis, err = os.ReadDir(filepath.Join(src, "neigh"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
for _, fi := range fis {
node.Exec = make(map[string][]string)
fis2, err := os.ReadDir(filepath.Join(src, "neigh", n, "exec"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
for _, fi2 := range fis2 {
node.Addrs = make(map[string]string)
fis2, err = os.ReadDir(filepath.Join(src, "neigh", n, "addrs"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
for _, fi2 := range fis2 {
}
fis2, err = os.ReadDir(filepath.Join(src, "neigh", n, "calls"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
callsIdx := make([]int, 0, len(fis2))
cfg.Areas = make(map[string]AreaJSON)
fis, err = os.ReadDir(filepath.Join(src, "areas"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
for _, fi := range fis {
area.Exec = make(map[string][]string)
fis2, err := os.ReadDir(filepath.Join(src, "areas", n, "exec"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
for _, fi2 := range fis2 {
}
fis, err = os.ReadDir(filepath.Join(src, "yggdrasil-aliases"))
- if err != nil && !os.IsNotExist(err) {
+ if err != nil && !errors.Is(err, fs.ErrNotExist) {
return nil, err
}
if len(fis) > 0 {
"flag"
"fmt"
"io"
+ "io/fs"
"log"
"os"
"path/filepath"
}
dstDirPath := filepath.Join(ctx.Spool, sender, string(nncp.TRx))
dstPath := filepath.Join(dstDirPath, pktName)
- if _, err = os.Stat(dstPath); err == nil || !os.IsNotExist(err) {
+ if _, err = os.Stat(dstPath); err == nil || !errors.Is(err, fs.ErrNotExist) {
ctx.LogD("bundle-rx-exists", les, func(les nncp.LEs) string {
return logMsg(les) + ": packet already exists"
})
}
if _, err = os.Stat(filepath.Join(
dstDirPath, nncp.SeenDir, pktName,
- )); err == nil || !os.IsNotExist(err) {
+ )); err == nil || !errors.Is(err, fs.ErrNotExist) {
ctx.LogD("bundle-rx-seen", les, func(les nncp.LEs) string {
return logMsg(les) + ": packet already seen"
})
"fmt"
"hash"
"io"
+ "io/fs"
"log"
"os"
"path/filepath"
for chunkNum, chunkPath := range chunksPaths {
fi, err := os.Stat(chunkPath)
lesChunk := append(les, nncp.LE{K: "Chunk", V: chunkNum})
- if err != nil && os.IsNotExist(err) {
+ if err != nil && errors.Is(err, fs.ErrNotExist) {
ctx.LogI("reass-chunk-miss", lesChunk, func(les nncp.LEs) string {
return fmt.Sprintf("%s: chunk %d missing", logMsg(les), chunkNum)
})
dstPathCtr := 0
for {
if _, err = os.Stat(dstPath); err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
break
}
log.Fatalln(err)
package main
import (
+ "errors"
"flag"
"fmt"
"io"
+ "io/fs"
"log"
"os"
"path/filepath"
}
remove := func(xx nncp.TRxTx) error {
p := filepath.Join(ctx.Spool, node.Id.String(), string(xx))
- if _, err := os.Stat(p); err != nil && os.IsNotExist(err) {
+ if _, err := os.Stat(p); err != nil && errors.Is(err, fs.ErrNotExist) {
return nil
}
dir, err := os.Open(p)
if err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
return nil
}
return err
removeSub := func(p string) error {
return filepath.Walk(p, func(path string, info os.FileInfo, err error) error {
if err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
return nil
}
return err
filepath.Join(ctx.Spool, node.Id.String(), nncp.AreaDir),
func(path string, info os.FileInfo, err error) error {
if err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
return nil
}
return err
"flag"
"fmt"
"io"
+ "io/fs"
"log"
"os"
"path/filepath"
}
ctx.LogD("xfer-self", les, logMsg)
if _, err = os.Stat(selfPath); err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
ctx.LogD("xfer-self-no-dir", les, func(les nncp.LEs) string {
return logMsg(les) + ": no directory"
})
string(nncp.TRx),
nncp.SeenDir,
fiInt.Name(),
- )); err == nil || !os.IsNotExist(err) {
+ )); err == nil || !errors.Is(err, fs.ErrNotExist) {
ctx.LogI("xfer-rx-seen", les, func(les nncp.LEs) string {
return logMsg(les) + ": packet already seen"
})
}
_, err = os.Stat(nodePath)
if err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
ctx.LogD("xfer-tx-not-exist", les, func(les nncp.LEs) string {
return logMsg(les) + ": does not exist"
})
}
_, err = os.Stat(dstPath)
if err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
if err = os.Mkdir(dstPath, os.FileMode(0777)); err != nil {
ctx.UnlockDir(dirLock)
ctx.LogE("xfer-tx-mkdir", les, err, logMsg)
})
continue
}
- if _, err = os.Stat(filepath.Join(dstPath, pktName)); err == nil || !os.IsNotExist(err) {
+ if _, err = os.Stat(filepath.Join(dstPath, pktName)); err == nil || !errors.Is(err, fs.ErrNotExist) {
ctx.LogD("xfer-tx-exists", les, func(les nncp.LEs) string {
return logMsg(les) + ": already exists"
})
import (
"errors"
"fmt"
+ "io/fs"
"os"
"path/filepath"
"strconv"
}
return fmt.Errorf("%s: is not a directory", p)
}
- if !os.IsNotExist(err) {
+ if !errors.Is(err, fs.ErrNotExist) {
return err
}
return os.MkdirAll(p, os.FileMode(0777))
import (
"bytes"
+ "errors"
"fmt"
"io"
+ "io/fs"
"os"
"path/filepath"
"strings"
fd, err = os.Open(pth)
} else {
fd, err = os.Open(JobPath2Hdr(pth))
- if err != nil && os.IsNotExist(err) {
+ if err != nil && errors.Is(err, fs.ErrNotExist) {
hdrExists = false
fd, err = os.Open(pth)
}
"errors"
"fmt"
"io"
+ "io/fs"
"log"
"mime"
"os"
dstPathCtr := 0
for {
if _, err = os.Stat(dstPath); err != nil {
- if os.IsNotExist(err) {
+ if errors.Is(err, fs.ErrNotExist) {
break
}
ctx.LogE("rx-stat", les, err, func(les LEs) string {