/*
NNCP -- Node to Node copy, utilities for store-and-forward data exchange
-Copyright (C) 2016-2017 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2016-2019 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
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-// Send file via NNCP
+// Reassembly chunked file.
package main
import (
func usage() {
fmt.Fprintf(os.Stderr, nncp.UsageHeader())
- fmt.Fprintln(os.Stderr, "nncp-reass -- reassemble chunked files\n")
+ fmt.Fprintf(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()
fmt.Fprint(os.Stderr, `
}
}
}
- dstW.Flush()
+ if err = dstW.Flush(); err != nil {
+ log.Fatalln("Can not flush:", err)
+ }
if tmp != nil {
- tmp.Sync()
+ if err = tmp.Sync(); err != nil {
+ log.Fatalln("Can not sync:", err)
+ }
tmp.Close()
}
ctx.LogD("nncp-reass", sds, "written")
}
if flag.NArg() > 0 {
- if !process(ctx, flag.Arg(0), *keep, *dryRun, *stdout, *dumpMeta) {
- os.Exit(1)
+ if process(ctx, flag.Arg(0), *keep, *dryRun, *stdout, *dumpMeta) {
+ return
}
- return
+ os.Exit(1)
}
hasErrors := false
if _, seen := seenMetaPaths[metaPath]; seen {
continue
}
- hasErrors = hasErrors || !process(ctx, metaPath, *keep, *dryRun, false, false)
+ if !process(ctx, metaPath, *keep, *dryRun, false, false) {
+ hasErrors = true
+ }
seenMetaPaths[metaPath] = struct{}{}
}
}
log.Fatalln("Specified -node does not allow incoming")
}
for _, metaPath := range findMetas(ctx, *nodeOnly.Incoming) {
- hasErrors = hasErrors || !process(ctx, metaPath, *keep, *dryRun, false, false)
+ if !process(ctx, metaPath, *keep, *dryRun, false, false) {
+ hasErrors = true
+ }
}
}
if hasErrors {