]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/cmd/nncp-reass/main.go
Remove huge usage headers, -warranty exists anyway
[nncp.git] / src / cmd / nncp-reass / main.go
index f4c1381801260b88909616a6fb56346e9bd5a361..7a23ac74f4fc826539f23a721e7281295d18c15f 100644 (file)
@@ -27,6 +27,7 @@ import (
        "fmt"
        "hash"
        "io"
+       "io/fs"
        "log"
        "os"
        "path/filepath"
@@ -39,7 +40,6 @@ import (
 )
 
 func usage() {
-       fmt.Fprint(os.Stderr, nncp.UsageHeader())
        fmt.Fprint(os.Stderr, "nncp-reass -- reassemble chunked files\n\n")
        fmt.Fprintf(os.Stderr, "Usage: %s [options] [FILE.nncp.meta]\nOptions:\n", os.Args[0])
        flag.PrintDefaults()
@@ -115,7 +115,7 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo
        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)
                        })
@@ -124,7 +124,8 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo
                }
                var badSize bool
                if chunkNum+1 == len(chunksPaths) {
-                       badSize = uint64(fi.Size()) != metaPkt.FileSize%metaPkt.ChunkSize
+                       left := metaPkt.FileSize % metaPkt.ChunkSize
+                       badSize = left != 0 && uint64(fi.Size()) != left
                } else {
                        badSize = uint64(fi.Size()) != metaPkt.ChunkSize
                }
@@ -269,7 +270,7 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo
        dstPathCtr := 0
        for {
                if _, err = os.Stat(dstPath); err != nil {
-                       if os.IsNotExist(err) {
+                       if errors.Is(err, fs.ErrNotExist) {
                                break
                        }
                        log.Fatalln(err)
@@ -299,16 +300,16 @@ func findMetas(ctx *nncp.Ctx, dirPath string) []string {
                return nil
        }
        defer dir.Close()
-       fis, err := dir.Readdir(0)
+       entries, err := dir.ReadDir(0)
        dir.Close()
        if err != nil {
                ctx.LogE("reass", nncp.LEs{{K: "Path", V: dirPath}}, err, logMsg)
                return nil
        }
        metaPaths := make([]string, 0)
-       for _, fi := range fis {
-               if strings.HasSuffix(fi.Name(), nncp.ChunkedSuffixMeta) {
-                       metaPaths = append(metaPaths, filepath.Join(dirPath, fi.Name()))
+       for _, entry := range entries {
+               if strings.HasSuffix(entry.Name(), nncp.ChunkedSuffixMeta) {
+                       metaPaths = append(metaPaths, filepath.Join(dirPath, entry.Name()))
                }
        }
        return metaPaths