@@ -181,12 +181,14 @@ func RunList(format string, patterns []string, flags ...string) (string, error)
181
181
return RunListWithEnv (format , patterns , nil , flags ... )
182
182
}
183
183
184
+ // Constructs a `go list` command with `format`, `patterns`, and `flags` for the respective inputs.
185
+ func List (format string , patterns []string , flags ... string ) * exec.Cmd {
186
+ return ListWithEnv (format , patterns , nil , flags ... )
187
+ }
188
+
184
189
// Runs `go list`.
185
190
func RunListWithEnv (format string , patterns []string , additionalEnv []string , flags ... string ) (string , error ) {
186
- args := append ([]string {"list" , "-e" , "-f" , format }, flags ... )
187
- args = append (args , patterns ... )
188
- cmd := exec .Command ("go" , args ... )
189
- cmd .Env = append (os .Environ (), additionalEnv ... )
191
+ cmd := ListWithEnv (format , patterns , additionalEnv , flags ... )
190
192
out , err := cmd .Output ()
191
193
192
194
if err != nil {
@@ -201,6 +203,16 @@ func RunListWithEnv(format string, patterns []string, additionalEnv []string, fl
201
203
return strings .TrimSpace (string (out )), nil
202
204
}
203
205
206
+ // Constructs a `go list` command with `format`, `patterns`, and `flags` for the respective inputs
207
+ // and the extra environment variables given by `additionalEnv`.
208
+ func ListWithEnv (format string , patterns []string , additionalEnv []string , flags ... string ) * exec.Cmd {
209
+ args := append ([]string {"list" , "-e" , "-f" , format }, flags ... )
210
+ args = append (args , patterns ... )
211
+ cmd := exec .Command ("go" , args ... )
212
+ cmd .Env = append (os .Environ (), additionalEnv ... )
213
+ return cmd
214
+ }
215
+
204
216
// PkgInfo holds package directory and module directory (if any) for a package
205
217
type PkgInfo struct {
206
218
PkgDir string // the directory directly containing source code of this package
0 commit comments