aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorholisticode <holistic.computing@gmail.com>2019-02-07 20:51:24 +0800
committerRafael Matias <rafael@skyle.net>2019-02-19 19:57:53 +0800
commit1ecf2860cff6e4da75abbd1e6b30a9b1d69c5a12 (patch)
tree5c5aa2511ae0962ab1e6255471c87a48380794e6 /cmd
parent034f65e9e8976f3ca7d9622e4c362ad9c26ad5f7 (diff)
downloaddexon-1ecf2860cff6e4da75abbd1e6b30a9b1d69c5a12.tar.gz
dexon-1ecf2860cff6e4da75abbd1e6b30a9b1d69c5a12.tar.zst
dexon-1ecf2860cff6e4da75abbd1e6b30a9b1d69c5a12.zip
cmd/swarm: hashes command (#19008)
(cherry picked from commit 7f55b0cbd8618a1b0de8d7e37d2b0143ebae4abf)
Diffstat (limited to 'cmd')
-rw-r--r--cmd/swarm/explore.go59
-rw-r--r--cmd/swarm/main.go2
2 files changed, 61 insertions, 0 deletions
diff --git a/cmd/swarm/explore.go b/cmd/swarm/explore.go
new file mode 100644
index 000000000..5b5b8bf41
--- /dev/null
+++ b/cmd/swarm/explore.go
@@ -0,0 +1,59 @@
+// Copyright 2019 The go-ethereum Authors
+// This file is part of go-ethereum.
+//
+// go-ethereum is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// go-ethereum is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with go-ethereum. If not, see <http://www.gnu.org/licenses/>.
+
+// Command bzzhash computes a swarm tree hash.
+package main
+
+import (
+ "context"
+ "fmt"
+ "os"
+
+ "github.com/ethereum/go-ethereum/cmd/utils"
+ "github.com/ethereum/go-ethereum/swarm/storage"
+ "gopkg.in/urfave/cli.v1"
+)
+
+var hashesCommand = cli.Command{
+ Action: hashes,
+ CustomHelpTemplate: helpTemplate,
+ Name: "hashes",
+ Usage: "print all hashes of a file to STDOUT",
+ ArgsUsage: "<file>",
+ Description: "Prints all hashes of a file to STDOUT",
+}
+
+func hashes(ctx *cli.Context) {
+ args := ctx.Args()
+ if len(args) < 1 {
+ utils.Fatalf("Usage: swarm hashes <file name>")
+ }
+ f, err := os.Open(args[0])
+ if err != nil {
+ utils.Fatalf("Error opening file " + args[1])
+ }
+ defer f.Close()
+
+ fileStore := storage.NewFileStore(&storage.FakeChunkStore{}, storage.NewFileStoreParams())
+ refs, err := fileStore.GetAllReferences(context.TODO(), f, false)
+ if err != nil {
+ utils.Fatalf("%v\n", err)
+ } else {
+ for _, r := range refs {
+ fmt.Println(r.String())
+ }
+ }
+}
diff --git a/cmd/swarm/main.go b/cmd/swarm/main.go
index 53888b615..8af5d8c32 100644
--- a/cmd/swarm/main.go
+++ b/cmd/swarm/main.go
@@ -142,6 +142,8 @@ func init() {
dbCommand,
// See config.go
DumpConfigCommand,
+ // hashesCommand
+ hashesCommand,
}
// append a hidden help subcommand to all commands that have subcommands