diff options
Diffstat (limited to 'src/pool-import/file-hasher.go')
-rw-r--r-- | src/pool-import/file-hasher.go | 58 |
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 +} |