MCPcopy
hub / github.com/dgraph-io/dgraph / run

Function run

dgraph/cmd/decrypt/decrypt.go:47–93  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

45 x.RegisterEncFlag(flag)
46}
47func run() {
48 keys, err := x.GetEncAclKeys(Decrypt.Conf)
49 x.Check(err)
50 if len(keys.EncKey) == 0 {
51 glog.Fatal("Error while reading encryption key: Key is empty")
52 }
53
54 opts := options{
55 file: Decrypt.Conf.GetString("file"),
56 output: Decrypt.Conf.GetString("out"),
57 keyfile: keys.EncKey,
58 }
59
60 f, err := os.Open(opts.file)
61 if err != nil {
62 glog.Fatalf("Error opening file: %v\n", err)
63 }
64 defer func() {
65 if err := f.Close(); err != nil {
66 glog.Warningf("error while closing fd: %v", err)
67 }
68 }()
69 reader, err := enc.GetReader(opts.keyfile, f)
70 x.Checkf(err, "could not open key reader")
71 if strings.HasSuffix(strings.ToLower(opts.file), ".gz") {
72 reader, err = gzip.NewReader(reader)
73 x.Check(err)
74 }
75 outf, err := os.OpenFile(opts.output, os.O_WRONLY|os.O_CREATE, 0644)
76 if err != nil {
77 glog.Fatalf("Error while opening output file: %v\n", err)
78 }
79 w := gzip.NewWriter(outf)
80 glog.Infof("Decrypting %s\n", opts.file)
81 glog.Infof("Writing to %v\n", opts.output)
82 _, err = io.Copy(w, reader)
83 if err != nil {
84 glog.Fatalf("Error while writing: %v\n", err)
85 }
86 err = w.Flush()
87 x.Check(err)
88 err = w.Close()
89 x.Check(err)
90 err = outf.Close()
91 x.Check(err)
92 glog.Infof("Done.")
93}

Callers 1

initFunction · 0.70

Calls 12

GetEncAclKeysFunction · 0.92
CheckFunction · 0.92
GetReaderFunction · 0.92
CheckfFunction · 0.92
FatalMethod · 0.80
FatalfMethod · 0.80
WarningfMethod · 0.80
InfofMethod · 0.80
OpenMethod · 0.65
CloseMethod · 0.65
OpenFileMethod · 0.65
FlushMethod · 0.65

Tested by

no test coverage detected