// // pool-import // // Copyright (C) 2016 Christian Pointner // // 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 . // 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 }