@@ -12,6 +12,34 @@ type Builder struct {
12
12
Debug bool
13
13
}
14
14
15
+ func git (args ... string ) error {
16
+ log .Printf ("Running %v..." , args );
17
+
18
+ cmd := exec .Command ("git" , args ... )
19
+ err := cmd .Run ()
20
+ if err != nil {
21
+ log .Printf ("Error: %s" , err .Error ());
22
+ return err ;
23
+ } else {
24
+ log .Printf ("...successful" );
25
+ }
26
+ return nil ;
27
+ }
28
+
29
+ func make (dir string , targets ... string ) error {
30
+ cmd := exec .Command ("make" , targets ... );
31
+ cmd .Dir = path .Join (dir , "text" );
32
+ log .Printf ("Running initial make: %v..." , targets );
33
+ err := cmd .Run ()
34
+ if err != nil {
35
+ log .Printf ("Error running initial make '%v': %s" , targets , err .Error ());
36
+ return err ;
37
+ } else {
38
+ log .Printf ("...successful" );
39
+ }
40
+ return nil ;
41
+ }
42
+
15
43
func (b Builder ) Push (msg hs.HubMessage ) {
16
44
url := "git@github.com:xogeny/ModelicaBook.git"
17
45
ref := "origin/master"
@@ -22,83 +50,34 @@ func (b Builder) Push(msg hs.HubMessage) {
22
50
dir := path .Join ("_cache" , user );
23
51
24
52
diri , err := os .Stat (dir );
25
- /*
26
- if (err!=nil) {
27
- log.Printf("Error getting file information: %s", err.Error());
28
- return;
29
- }
30
- */
31
-
32
- var cmd * exec.Cmd ;
33
- var exists bool ;
34
53
35
- exists = err == nil && diri .IsDir ();
54
+ exists : = err == nil && diri .IsDir ();
36
55
37
56
// TODO: Have a query parameter to clear cache
38
57
39
58
if (exists ) {
40
- log .Printf ("Repository already exists, fetching latest updates..." );
41
- /* Clone repo locally */
42
- cmd = exec .Command ("git" , "fetch" , "origin" )
43
- err := cmd .Run ()
44
- if err != nil {
45
- log .Printf ("Error fetching updates: %s" , err .Error ());
46
- return ;
47
- } else {
48
- log .Printf ("...successful" );
49
- }
59
+ err = git ("fetch" , "origin" );
60
+ if (err != nil ) { return ; }
50
61
} else {
51
- log .Printf ("Cloning repository: %s..." , url );
52
- /* Clone repo locally */
53
- cmd = exec .Command ("git" , "clone" , url , dir )
54
- err := cmd .Run ()
55
- if err != nil {
56
- log .Printf ("Error cloning repository at '%s' to directory %s: %s" ,
57
- url , dir , err .Error ());
58
- return ;
59
- } else {
60
- log .Printf ("...successful" );
61
- }
62
+ err = git ("clone" , url , dir );
63
+ if (err != nil ) { return ; }
62
64
}
63
65
64
- log .Printf ("Checking out: %s..." , ref );
65
66
/* Repo checkout correct ref */
66
- cmd = exec .Command ("git" , "checkout" , ref )
67
- err = cmd .Run ()
68
- if err != nil {
69
- log .Printf ("Error checking out '%s': %s" , ref , err .Error ());
70
- return ;
71
- } else {
72
- log .Printf ("...successful" );
73
- }
67
+ err = git ("checkout" , ref )
68
+ if err != nil { return ; }
74
69
75
70
bucket := fmt .Sprintf ("S3BUCKET=dev.book.xogeny.com/%s" , user );
76
71
if (! exists ) {
77
72
// If it didn't already exist, we need to run some make targets
78
73
/* Run make */
79
- cmd = exec .Command ("make" , "specs" , "results" );
80
- cmd .Dir = path .Join (dir , "text" );
81
- log .Printf ("Running initial make: %v..." , cmd );
82
- err = cmd .Run ()
83
- if err != nil {
84
- log .Printf ("Error running initial make '%v': %s" , cmd , err .Error ());
85
- return ;
86
- } else {
87
- log .Printf ("...successful" );
88
- }
74
+ make (dir , "specs" , "results" );
75
+ if (err != nil ) { return ; }
89
76
}
90
77
91
78
/* Run make */
92
- cmd = exec .Command ("make" , target1 , target2 , bucket );
93
- cmd .Dir = path .Join (dir , "text" );
94
- log .Printf ("Running build make: %v..." , cmd );
95
- err = cmd .Run ()
96
- if err != nil {
97
- log .Printf ("Error running build make '%v': %s" , cmd , err .Error ());
98
- return ;
99
- } else {
100
- log .Printf ("...successful" );
101
- }
79
+ make (dir , target1 , target2 , bucket );
80
+ if err != nil { return ; }
102
81
103
82
log .Printf ("Make ran!" );
104
83
}
0 commit comments