@@ -4,6 +4,7 @@ import "os"
4
4
import "fmt"
5
5
import "log"
6
6
import "path"
7
+ import "bytes"
7
8
import "os/exec"
8
9
9
10
import hs "github.com/xogeny/go-hooksink"
@@ -12,13 +13,26 @@ type Builder struct {
12
13
Debug bool
13
14
}
14
15
15
- func git (args ... string ) error {
16
+ func git (dir string , args ... string ) error {
16
17
log .Printf ("Running %v..." , args );
17
18
19
+ ebuf := []byte {};
20
+ obuf := []byte {};
21
+
22
+ stderr := bytes .NewBuffer (ebuf );
23
+ stdout := bytes .NewBuffer (obuf );
24
+
18
25
cmd := exec .Command ("git" , args ... )
26
+ cmd .Dir = dir ;
27
+ cmd .Stderr = stderr ;
28
+ cmd .Stdout = stdout ;
19
29
err := cmd .Run ()
20
30
if err != nil {
21
31
log .Printf ("Error: %s" , err .Error ());
32
+ log .Print ("=== Output ===" );
33
+ log .Print (stdout .String ());
34
+ log .Print ("=== Error ===" );
35
+ log .Print (stderr .String ());
22
36
return err ;
23
37
} else {
24
38
log .Printf ("...successful" );
@@ -27,12 +41,24 @@ func git(args...string) error {
27
41
}
28
42
29
43
func make (dir string , targets ... string ) error {
44
+ ebuf := []byte {};
45
+ obuf := []byte {};
46
+
47
+ stderr := bytes .NewBuffer (ebuf );
48
+ stdout := bytes .NewBuffer (obuf );
49
+
30
50
cmd := exec .Command ("make" , targets ... );
51
+ cmd .Stderr = stderr ;
52
+ cmd .Stdout = stdout ;
31
53
cmd .Dir = path .Join (dir , "text" );
32
54
log .Printf ("Running initial make: %v..." , targets );
33
55
err := cmd .Run ()
34
56
if err != nil {
35
57
log .Printf ("Error running initial make '%v': %s" , targets , err .Error ());
58
+ log .Print ("=== Output ===" );
59
+ log .Print (stdout .String ());
60
+ log .Print ("=== Error ===" );
61
+ log .Print (stderr .String ());
36
62
return err ;
37
63
} else {
38
64
log .Printf ("...successful" );
@@ -56,27 +82,27 @@ func (b Builder) Push(msg hs.HubMessage) {
56
82
// TODO: Have a query parameter to clear cache
57
83
58
84
if (exists ) {
59
- err = git ("fetch" , "origin" );
85
+ err = git (dir , "fetch" , "origin" );
60
86
if (err != nil ) { return ; }
61
87
} else {
62
- err = git ("clone" , url , dir );
88
+ err = git (dir , "clone" , url , dir );
63
89
if (err != nil ) { return ; }
64
90
}
65
91
66
92
/* Repo checkout correct ref */
67
- err = git ("checkout" , ref )
93
+ err = git (dir , "checkout" , ref )
68
94
if err != nil { return ; }
69
95
70
96
bucket := fmt .Sprintf ("S3BUCKET=dev.book.xogeny.com/%s" , user );
71
97
if (! exists ) {
72
98
// If it didn't already exist, we need to run some make targets
73
99
/* Run make */
74
- make (dir , "specs" , "results" );
100
+ make (dir , "specs" );
75
101
if (err != nil ) { return ; }
76
102
}
77
103
78
104
/* Run make */
79
- make (dir , target1 , target2 , bucket );
105
+ make (dir , "results" , target1 , target2 , bucket );
80
106
if err != nil { return ; }
81
107
82
108
log .Printf ("Make ran!" );
0 commit comments