diff options
Diffstat (limited to 'old.go')
| -rw-r--r-- | old.go | 172 |
1 files changed, 0 insertions, 172 deletions
@@ -1,172 +0,0 @@ -package shell - -// old code and probably junk - -import ( - "io/ioutil" - "net/http" - "os" - "os/exec" - - "go.wit.com/log" -) - -// TODO: look at https://github.com/go-cmd/cmd/issues/20 -// use go-cmd instead here? - -var callback func(interface{}, int) - -var shellStdout *os.File -var shellStderr *os.File - -var spewOn bool = false -var quiet bool = false - -// var msecDelay int = 20 // number of milliseconds to delay between reads with no data - -// var bytesBuffer bytes.Buffer -// var bytesSplice []byte - -func handleError(c interface{}, ret int) { - log.Log(INFO, "shell.Run() Returned", ret) - if callback != nil { - callback(c, ret) - } -} - -func init() { - callback = nil -} - -func InitCallback(f func(interface{}, int)) { - callback = f -} - -// this means it won't copy all the output to STDOUT -func Quiet(q bool) { - quiet = q -} - -/* -func Script(cmds string) int { - // split on new lines (while we are at it, handle stupid windows text files - lines := strings.Split(strings.Replace(cmds, "\r\n", "\n", -1), "\n") - - for _, line := range lines { - line = Chomp(line) // this is like 'chomp' in perl - log.Log(INFO, "LINE:", line) - time.Sleep(1) - RunString(line) - } - return 0 -} -*/ - -func Unlink(filename string) bool { - if err := os.Remove(filename); err != nil { - return Exists(filename) - } else { - return Exists(filename) - } -} - -// run interactively. output from the cmd is in real time -// shows all the output. For example, 'ping -n localhost' -// shows the output like you would expect to see -func RunSimple(cmd []string) error { - log.Log(INFO, "NewRun() ", cmd) - - return PathRunSimple("", cmd) -} - -func PathRunSimple(workingpath string, cmd []string) error { - log.Log(INFO, "NewRun() ", cmd) - - process := exec.Command(cmd[0], cmd[1:len(cmd)]...) - // Set the working directory - process.Dir = workingpath - process.Stderr = os.Stderr - process.Stdin = os.Stdin - process.Stdout = os.Stdout - process.Start() - err := process.Wait() - if err != nil { - log.Log(INFO, "shell.Exec() err =", err) - } - return err -} - -// return true if the filename exists (cross-platform) - -// return true if the filename exists (cross-platform) -func Exists(filename string) bool { - _, err := os.Stat(Path(filename)) - if os.IsNotExist(err) { - return false - } - return true -} - -// makes the directory -func Mkdir(dir string) bool { - if Dir(dir) { - // already a dir - return true - } - if Exists(dir) { - // something else is there - return false - } - Run([]string{"mkdir", "-p", dir}) - return true -} - -func IsDir(dirname string) bool { - return Dir(dirname) -} - -// return true if the filename exists (cross-platform) -func Dir(dirname string) bool { - info, err := os.Stat(Path(dirname)) - if os.IsNotExist(err) { - return false - } - return info.IsDir() -} - -// Cat a file into a string -func Cat(filename string) string { - buffer, err := ioutil.ReadFile(Path(filename)) - // log.Log(INFO, "buffer =", string(buffer)) - if err != nil { - return "" - } - return string(buffer) -} - -func RunPathHttpOut(path string, cmd []string, w http.ResponseWriter, r *http.Request) error { - log.Warn("Run(): ", cmd) - - process := exec.Command(cmd[0], cmd[1:len(cmd)]...) - process.Dir = path - process.Stderr = os.Stderr - process.Stdin = r.Body - process.Stdout = w - process.Start() - err := process.Wait() - log.Warn("shell.Exec() err =", err) - return err -} - -func RunHttpOut(cmd []string, w http.ResponseWriter, r *http.Request) error { - log.Warn("NewRun() ", cmd) - - process := exec.Command(cmd[0], cmd[1:len(cmd)]...) - process.Stderr = os.Stderr - process.Stdin = r.Body - process.Stdout = w - process.Start() - err := process.Wait() - log.Warn("shell.Exec() err =", err) - return err -} |
