1ed17e94b
김태훈
전주기 시연용 응용 프로그램 추가
|
1
2
3
4
5
6
|
package main
import (
"bufio"
"fmt"
"io"
|
b4dc09fca
김태훈
호스트 주소 기본 값을 파일로 ...
|
7
|
"io/ioutil"
|
1ed17e94b
김태훈
전주기 시연용 응용 프로그램 추가
|
8
9
10
|
"log"
"os"
"os/exec"
|
6f80e06c4
김태훈
Vue의 json 파싱 오류 방지
|
11
|
"time"
|
1ed17e94b
김태훈
전주기 시연용 응용 프로그램 추가
|
12
13
14
15
16
17
18
|
)
func main() {
var host string
var out io.Writer
if l := len(os.Args); l == 1 {
|
b4dc09fca
김태훈
호스트 주소 기본 값을 파일로 ...
|
19
20
21
22
23
24
|
b, err := ioutil.ReadFile("host.iperf")
if err != nil {
host = "172.30.0.1"
} else {
host = string(b)
}
|
1ed17e94b
김태훈
전주기 시연용 응용 프로그램 추가
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
out = os.Stdout
} else if l == 2 {
host = os.Args[1]
out = os.Stdout
} else {
f, err := os.OpenFile(os.Args[2], os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
if err != nil {
log.Fatal(err)
}
defer f.Close()
host = os.Args[1]
out = f
}
|
6cb3e0188
김태훈
출력 형식 변경
|
39
|
test("hw-ethernet", host, out)
|
1ed17e94b
김태훈
전주기 시연용 응용 프로그램 추가
|
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
}
func test(code, host string, out io.Writer) {
c := exec.Command("iperf", "-c", host, "-i", "1", "-t", "10")
stdout, err := c.StdoutPipe()
err = c.Start()
if err != nil {
log.Fatal(err)
}
state := 0
s := bufio.NewScanner(stdout)
for s.Scan() {
|
6cb3e0188
김태훈
출력 형식 변경
|
55
56
|
fmt.Fprintf(out, "{\"%v\": {\"progress\": %v, \"result\": \"%v\"}}
", code, state, s.Text())
|
1ed17e94b
김태훈
전주기 시연용 응용 프로그램 추가
|
57
58
59
60
|
if state < 90 {
state += 10
}
}
|
6f80e06c4
김태훈
Vue의 json 파싱 오류 방지
|
61
|
time.Sleep(1)
|
6cb3e0188
김태훈
출력 형식 변경
|
62
63
|
fmt.Fprintf(out, "{\"%v\": {\"progress\": 100, \"result\": \"\"}}
", code)
|
1ed17e94b
김태훈
전주기 시연용 응용 프로그램 추가
|
64
|
}
|