I can use this out, err := exec.Command("git", "log").Output()
to get an output of the command which will run in the same path as the executable location.
How do I specify in which folder I want to run the command?
I can use this out, err := exec.Command("git", "log").Output()
to get an output of the command which will run in the same path as the executable location.
How do I specify in which folder I want to run the command?
exec.Command()
returns you a value of type *exec.Cmd
. Cmd
is a struct and has a Dir
field:
// Dir specifies the working directory of the command.
// If Dir is the empty string, Run runs the command in the
// calling process's current directory.
Dir string
So simply set it before calling Cmd.Output()
:
cmd:= exec.Command("git", "log")
cmd.Dir = "your/intended/working/directory"
out, err := cmd.Output()
Also note that this is specific to git
command; git
allows you to pass the path using the -C
flag, so you may also do what you want like this:
out, err := exec.Command("git", "-C", "your/intended/working/directory", "log").
Output()