Browse code

Use pointers for the object methods

Guillaume J. Charmes authored on 2013/05/21 08:35:28
Showing 1 changed files
... ...
@@ -31,7 +31,7 @@ type builderClient struct {
31 31
 	needCommit bool
32 32
 }
33 33
 
34
-func (b builderClient) clearTmp(containers, images map[string]struct{}) {
34
+func (b *builderClient) clearTmp(containers, images map[string]struct{}) {
35 35
 	for c := range containers {
36 36
 		if _, _, err := b.cli.call("DELETE", "/containers/"+c, nil); err != nil {
37 37
 			utils.Debugf("%s", err)
... ...
@@ -46,7 +46,7 @@ func (b builderClient) clearTmp(containers, images map[string]struct{}) {
46 46
 	}
47 47
 }
48 48
 
49
-func (b builderClient) CmdFrom(name string) error {
49
+func (b *builderClient) CmdFrom(name string) error {
50 50
 	obj, statusCode, err := b.cli.call("GET", "/images/"+name+"/json", nil)
51 51
 	if statusCode == 404 {
52 52
 		if err := b.cli.hijack("POST", "/images/create?fromImage="+name, false); err != nil {
... ...
@@ -66,16 +66,17 @@ func (b builderClient) CmdFrom(name string) error {
66 66
 		return err
67 67
 	}
68 68
 	b.image = img.Id
69
+	utils.Debugf("Using image %s", b.image)
69 70
 	return nil
70 71
 }
71 72
 
72
-func (b builderClient) CmdMaintainer(name string) error {
73
+func (b *builderClient) CmdMaintainer(name string) error {
73 74
 	b.needCommit = true
74 75
 	b.maintainer = name
75 76
 	return nil
76 77
 }
77 78
 
78
-func (b builderClient) CmdRun(args string) error {
79
+func (b *builderClient) CmdRun(args string) error {
79 80
 	if b.image == "" {
80 81
 		return fmt.Errorf("Please provide a source image with `from` prior to run")
81 82
 	}
... ...
@@ -111,7 +112,7 @@ func (b builderClient) CmdRun(args string) error {
111 111
 	return b.commit(cid)
112 112
 }
113 113
 
114
-func (b builderClient) CmdEnv(args string) error {
114
+func (b *builderClient) CmdEnv(args string) error {
115 115
 	b.needCommit = true
116 116
 	tmp := strings.SplitN(args, " ", 2)
117 117
 	if len(tmp) != 2 {
... ...
@@ -130,10 +131,11 @@ func (b builderClient) CmdEnv(args string) error {
130 130
 	return nil
131 131
 }
132 132
 
133
-func (b builderClient) CmdCmd(args string) error {
133
+func (b *builderClient) CmdCmd(args string) error {
134 134
 	b.needCommit = true
135 135
 	var cmd []string
136 136
 	if err := json.Unmarshal([]byte(args), &cmd); err != nil {
137
+		utils.Debugf("Error unmarshalling: %s, using /bin/sh -c", err)
137 138
 		b.config.Cmd = []string{"/bin/sh", "-c", args}
138 139
 	} else {
139 140
 		b.config.Cmd = cmd
... ...
@@ -141,19 +143,19 @@ func (b builderClient) CmdCmd(args string) error {
141 141
 	return nil
142 142
 }
143 143
 
144
-func (b builderClient) CmdExpose(args string) error {
144
+func (b *builderClient) CmdExpose(args string) error {
145 145
 	ports := strings.Split(args, " ")
146 146
 	b.config.PortSpecs = append(ports, b.config.PortSpecs...)
147 147
 	return nil
148 148
 }
149 149
 
150
-func (b builderClient) CmdInsert(args string) error {
150
+func (b *builderClient) CmdInsert(args string) error {
151 151
 	// FIXME: Reimplement this once the remove_hijack branch gets merged.
152 152
 	// We need to retrieve the resulting Id
153 153
 	return fmt.Errorf("INSERT not implemented")
154 154
 }
155 155
 
156
-func (b builderClient) run() (string, error) {
156
+func (b *builderClient) run() (string, error) {
157 157
 	if b.image == "" {
158 158
 		return "", fmt.Errorf("Please provide a source image with `from` prior to run")
159 159
 	}
... ...
@@ -194,7 +196,7 @@ func (b builderClient) run() (string, error) {
194 194
 	return apiRun.Id, nil
195 195
 }
196 196
 
197
-func (b builderClient) commit(id string) error {
197
+func (b *builderClient) commit(id string) error {
198 198
 	if b.image == "" {
199 199
 		return fmt.Errorf("Please provide a source image with `from` prior to run")
200 200
 	}
... ...
@@ -230,7 +232,7 @@ func (b builderClient) commit(id string) error {
230 230
 	return nil
231 231
 }
232 232
 
233
-func (b builderClient) Build(dockerfile io.Reader) (string, error) {
233
+func (b *builderClient) Build(dockerfile io.Reader) (string, error) {
234 234
 	//	defer b.clearTmp(tmpContainers, tmpImages)
235 235
 	file := bufio.NewReader(dockerfile)
236 236
 	for {
... ...
@@ -253,7 +255,7 @@ func (b builderClient) Build(dockerfile io.Reader) (string, error) {
253 253
 		instruction := strings.ToLower(strings.Trim(tmp[0], " "))
254 254
 		arguments := strings.Trim(tmp[1], " ")
255 255
 
256
-		fmt.Printf("%s %s\n", strings.ToUpper(instruction), arguments)
256
+		fmt.Printf("%s %s (%s)\n", strings.ToUpper(instruction), arguments, b.image)
257 257
 
258 258
 		method, exists := reflect.TypeOf(b).MethodByName("Cmd" + strings.ToUpper(instruction[:1]) + strings.ToLower(instruction[1:]))
259 259
 		if !exists {