@@ -3,6 +3,7 @@ package proxy
3
3
import (
4
4
"bytes"
5
5
"fmt"
6
+ "io"
6
7
"io/ioutil"
7
8
"log"
8
9
"net"
@@ -12,47 +13,48 @@ import (
12
13
"regexp"
13
14
"strings"
14
15
"sync"
16
+ "syscall"
15
17
"unicode"
16
18
)
17
19
18
20
var haProxyCmd = "haproxy"
19
21
20
22
var cmdRunHa = func (args []string ) error {
21
- var stdoutBuf , stderrBuf bytes.Buffer
22
- cmd := exec .Command (haProxyCmd , args ... )
23
-
24
- stdoutIn , _ := cmd .StdoutPipe ()
25
- stderrIn , _ := cmd .StderrPipe ()
26
-
27
- stdout := io .MultiWriter (os .Stdout , & stdoutBuf )
28
- stderr := io .MultiWriter (os .Stderr , & stderrBuf )
29
- cmd .Start ()
30
-
31
- go func () {
32
- io .Copy (stdout , stdoutIn )
33
- }()
34
-
35
- go func () {
36
- io .Copy (stderr , stderrIn )
37
- }()
38
-
39
- err := cmd .Wait ()
40
-
41
- outStr , errStr := string (stdoutBuf .Bytes ()), string (stderrBuf .Bytes ())
42
- combinedOut := fmt .Sprintf ("\n stdout:\n %s\n stderr:\n %s\n " , outStr , errStr )
43
-
44
- if exitError , ok := err .(* exec.ExitError ); ok {
45
- waitStatus := exitError .Sys ().(syscall.WaitStatus )
46
- fmt .Printf ("Exit Status: %s\n " , []byte (fmt .Sprintf ("%d" , waitStatus .ExitStatus ())))
47
- return fmt .Errorf (combinedOut )
48
- }
49
-
50
- if errStr != "" {
51
- fmt .Println ("The configuration file is valid, but there still may be a misconfiguration" ,
52
- "somewhere that will give unexpected results, please verify:" , combinedOut )
53
- }
54
-
55
- return nil
23
+ var stdoutBuf , stderrBuf bytes.Buffer
24
+ cmd := exec .Command (haProxyCmd , args ... )
25
+
26
+ stdoutIn , _ := cmd .StdoutPipe ()
27
+ stderrIn , _ := cmd .StderrPipe ()
28
+
29
+ stdout := io .MultiWriter (os .Stdout , & stdoutBuf )
30
+ stderr := io .MultiWriter (os .Stderr , & stderrBuf )
31
+ cmd .Start ()
32
+
33
+ go func () {
34
+ io .Copy (stdout , stdoutIn )
35
+ }()
36
+
37
+ go func () {
38
+ io .Copy (stderr , stderrIn )
39
+ }()
40
+
41
+ err := cmd .Wait ()
42
+
43
+ outStr , errStr := string (stdoutBuf .Bytes ()), string (stderrBuf .Bytes ())
44
+ combinedOut := fmt .Sprintf ("\n stdout:\n %s\n stderr:\n %s\n " , outStr , errStr )
45
+
46
+ if exitError , ok := err .(* exec.ExitError ); ok {
47
+ waitStatus := exitError .Sys ().(syscall.WaitStatus )
48
+ fmt .Printf ("Exit Status: %s\n " , []byte (fmt .Sprintf ("%d" , waitStatus .ExitStatus ())))
49
+ return fmt .Errorf (combinedOut )
50
+ }
51
+
52
+ if errStr != "" {
53
+ fmt .Println ("The configuration file is valid, but there still may be a misconfiguration" ,
54
+ "somewhere that will give unexpected results, please verify:" , combinedOut )
55
+ }
56
+
57
+ return nil
56
58
}
57
59
58
60
var cmdValidateHa = func (args []string ) error {
0 commit comments