@@ -2,7 +2,6 @@ package danger_js
2
2
3
3
import (
4
4
"encoding/json"
5
- "errors"
6
5
"fmt"
7
6
"os"
8
7
"os/exec"
@@ -12,30 +11,13 @@ import (
12
11
const dangerJsBinary = "danger"
13
12
const dangerGoBinary = "danger-go"
14
13
15
- func runCommand (command string , args ... string ) (string , error ) {
16
- cmd := exec .Command (command , args ... )
17
- stdout := new (strings.Builder )
18
- cmd .Stdout = stdout
19
- stderr := new (strings.Builder )
20
- cmd .Stderr = stderr
21
- if err := cmd .Run (); err != nil {
22
- parts := strings .Split (stderr .String (), "\n \n " )
23
- for _ , part := range parts {
24
- if strings .HasPrefix (part , "Error" ) {
25
- return "" , errors .New (part )
26
- }
27
- }
28
- return "" , err
29
- }
30
- return stdout .String (), nil
31
- }
32
-
33
14
func findBinary (name string ) (string , error ) {
34
- dangerBin , err := runCommand ("which" , name )
15
+ cmd := exec .Command ("which" , name )
16
+ dangerBin , err := cmd .CombinedOutput ()
35
17
if err != nil {
36
18
return "" , fmt .Errorf ("could not find `%s` binary: %w" , name , err )
37
19
}
38
- return strings .TrimSpace (dangerBin ), nil
20
+ return strings .TrimSpace (string ( dangerBin ) ), nil
39
21
}
40
22
41
23
func GetPR (url string , dangerBin string ) (PR , error ) {
@@ -47,7 +29,8 @@ func GetPR(url string, dangerBin string) (PR, error) {
47
29
}
48
30
}
49
31
50
- prJSON , err := runCommand (dangerBin , "pr" , url , "--json" )
32
+ cmd := exec .Command (dangerBin , "pr" , url , "--json" )
33
+ prJSON , err := cmd .CombinedOutput ()
51
34
if err != nil {
52
35
return PR {}, fmt .Errorf ("could not download PR JSON with danger-js: %w" , err )
53
36
}
0 commit comments