X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcmd%2Fnncp-exec%2Fmain.go;h=11a99073bb441ab06642ae27f1ebb72babe555d6;hb=ab7c7eca0e53661f0ba904c2a6ba752990bea367;hp=0aa4444254de3add2b45f22760a6afef72ae4ab2;hpb=b6e9ce353036a99c5b98c121fee81632ea47f152;p=nncp.git diff --git a/src/cmd/nncp-exec/main.go b/src/cmd/nncp-exec/main.go index 0aa4444..11a9907 100644 --- a/src/cmd/nncp-exec/main.go +++ b/src/cmd/nncp-exec/main.go @@ -24,14 +24,17 @@ import ( "fmt" "log" "os" + "strings" - "go.cypherpunks.ru/nncp/v6" + "go.cypherpunks.ru/nncp/v7" ) func usage() { fmt.Fprintf(os.Stderr, nncp.UsageHeader()) fmt.Fprintf(os.Stderr, "nncp-exec -- send execution command\n\n") - fmt.Fprintf(os.Stderr, "Usage: %s [options] NODE HANDLE [ARG0 ARG1 ...]\nOptions:\n", os.Args[0]) + fmt.Fprintf(os.Stderr, "Usage: %s [options] NODE HANDLE [ARG0 ARG1 ...]\n", os.Args[0]) + fmt.Fprintf(os.Stderr, " %s [options] %s:AREA HANDLE [ARG0 ARG1 ...]\nOptions:\n", + os.Args[0], nncp.AreaDir) flag.PrintDefaults() } @@ -93,9 +96,19 @@ func main() { log.Fatalln("Config lacks private keys") } - node, err := ctx.FindNode(flag.Arg(0)) - if err != nil { - log.Fatalln("Invalid NODE specified:", err) + var areaId *nncp.AreaId + var node *nncp.Node + if strings.HasPrefix(flag.Arg(0), nncp.AreaDir+":") { + areaId = ctx.AreaName2Id[flag.Arg(0)[len(nncp.AreaDir)+1:]] + if areaId == nil { + log.Fatalln("Unknown area specified") + } + node = ctx.Neigh[*ctx.SelfId] + } else { + node, err = ctx.FindNode(flag.Arg(0)) + if err != nil { + log.Fatalln("Invalid NODE specified:", err) + } } nncp.ViaOverride(*viaOverride, ctx, node) @@ -111,6 +124,7 @@ func main() { int64(*minSize)*1024, *useTmp, *noCompress, + areaId, ); err != nil { log.Fatalln(err) }