From a9b9ccf1b86fcb4e965388e5638c148270df6904 Mon Sep 17 00:00:00 2001 From: Paulo Casaretto Date: Fri, 28 Jun 2019 17:44:40 -0300 Subject: [PATCH] Simplify and fix input/output/err handling --- main.go | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/main.go b/main.go index a08b2c5..e6494fa 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,6 @@ package main import ( "flag" "fmt" - "io" "log" "os" "os/exec" @@ -33,25 +32,16 @@ func main() { if err != nil { log.Fatalf("Error parsing file %s\n\t%s\n", *filename, err) } + env = append(env, os.Environ()...) cmdArgs := flag.Args() cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...) - stdinPipe, err := cmd.StdinPipe() - if err != nil { - log.Fatalf("Failed opening stdin") - } - go io.Copy(stdinPipe, os.Stdin) - stdoutPipe, err := cmd.StdoutPipe() - if err != nil { - log.Fatalf("Failed opening stdout") - } - go io.Copy(os.Stdout, stdoutPipe) - stderrPipe, err := cmd.StderrPipe() - if err != nil { - log.Fatalf("Failed opening stderr") - } - go io.Copy(os.Stderr, stderrPipe) - env = append(env, os.Environ()...) + + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmd.Env = env + cmd.Run() }