Thanks for Stderr.
I would like to do a recursive copy of a directory (similar to cp -r ),
directory can contain files (binaries or text files) and directories.
I now see
exit status 1: cp: ./*.json: No such file or directory
Code:
//ExecuteCommandWithOuput will execute cmd passed as argument and display
output.
func ExecuteCommandWithOuput(cmd *exec.Cmd) {
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
return
}
fmt.Println("Result: " + out.String())
}
On Monday, January 16, 2017 at 7:51:20 PM UTC-8, kortschak wrote:
>
> Before answering the questions below, you should know that exec.Command
> will not do shell glob expansion since it does not invoke commands via
> a shell. If you want to do that you can either invoke via a shell or do
> the globbing yourself with filepath.Glob[1].
>
> 1. You can capture the combined output or stderr using the exec.Cmd
> CombinedOutput method or Stderr field respectively.
> 2. exec.Command does not know anything about recursive copy of
> directories, it just invokes commands.
> 3. This depends on exactly what it is that you are trying to achieve.
>
> [1]https://golang.org/pkg/path/filepath/#Glob
>
> On Mon, 2017-01-16 at 13:35 -0800, Deepak Jain wrote:
> > util.ExecuteCommandWithOuput(exec.Command("cp", "-r", "./*.json",
> > artifact.
> > dir))
> >
> > func ExecuteCommandWithOuput(cmd *exec.Cmd) {
> > output, err := cmd.Output()
> > if err != nil {
> > log.Print("Error executing ", cmd.Args, err)
> > }
> > fmt.Print(string(output))
> > }
> >
> >
> > Output
> >
> > 2017/01/16 13:26:35 Error executing [cp -r ./*.json myartifact] exit
> > status
> > 1
> >
> >
> > Questions
> > 1. How do i get details of complete error message on failure of cp
> > command
> > ? I did have err != nill and Print err
> > 2. Does exec.Command not support copy of files and recursive copy of
> > directories ?
> > 3. Any suggestions how i implement copy of files and recursive copy
> > of
> > directories ?
> >
> > I have just started adopting Go and hence a new comer with Go.
> > Regards,
> > Deepak
> >
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.