summaryrefslogtreecommitdiff
path: root/src/pool-import/file-hasher.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pool-import/file-hasher.go')
-rw-r--r--src/pool-import/file-hasher.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/pool-import/file-hasher.go b/src/pool-import/file-hasher.go
new file mode 100644
index 0000000..43dc6d9
--- /dev/null
+++ b/src/pool-import/file-hasher.go
@@ -0,0 +1,58 @@
+//
+// pool-import
+//
+// Copyright (C) 2016 Christian Pointner <equinox@helsinki.at>
+//
+// This file is part of pool-import.
+//
+// pool-import 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
+// any later version.
+//
+// pool-import 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 pool-import. If not, see <http://www.gnu.org/licenses/>.
+//
+
+package main
+
+import (
+ "bytes"
+ "encoding/json"
+ "os"
+ "os/exec"
+)
+
+type FileMap map[string]string
+
+// TODO: actually call this via ssh
+func callFileHasher() (files FileMap, err error) {
+ var stdin, log *os.File
+ if stdin, err = os.Open("sample/file-hasher-requst.json"); err != nil {
+ return
+ }
+ if log, err = os.OpenFile("file-hasher.log", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0640); err != nil {
+ return
+ }
+
+ cmd := exec.Command("bin/file-hasher")
+ var stdout bytes.Buffer
+ cmd.Stdin = stdin
+ cmd.Stdout = &stdout
+ cmd.Stderr = log
+
+ if err = cmd.Run(); err != nil {
+ return
+ }
+
+ if err = json.NewDecoder(&stdout).Decode(&files); err != nil {
+ return
+ }
+
+ return
+}