Blame view

go/src/fullcycle/analog-kernel/main.go 1.31 KB
1ed17e94b   김태훈   전주기 시연용 응용 프로그램 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
  package main
  
  import (
  	"bufio"
  	"encoding/json"
  	"fmt"
  	"io/ioutil"
  	"log"
  	"os"
  
  	"fullcycle/analog-kernel/parser"
  )
  
  const defaultResult = `
  {
  	"result": {
  		"cpu" : {
  			"name": "ARMv7 Processor",
  			"id": "410fd034",
  			"revision": "4",
  			"arch": "ARMv7",
  			"cr": "10c5383d"
  		},
  
  		"model" : {
  			"model": "Raspberry Pi 3 Model B Rev 1.2"
  		}
  	},
  
  	"report": {
  		"log_id": "012-3233-4423",
  		"date": "2018/04/18",
  
  		"target": "raspberry pi3",
  		"hardware": [
  			{
  				"title": "CPU",
  				"result": "PASS"
  			},
  			{
  				"title": "Memory",
  				"result": "FAIL",
  				"message": "Not found in booting log messages"
  			}
  		],
  
  		"os": [
  		],
  
  		"device": [
  		]
  	}
  }
  `
  
  func check(err error) {
  	if err != nil {
  		log.Fatal(err)
  	}
  }
  
  var uuid string
  
  func init() {
  	if len(os.Args) == 1 {
  		fmt.Fprintf(os.Stderr, "Usage: %v <UUID>
  ", os.Args[0])
  		os.Exit(1)
  	}
  
  	uuid = os.Args[1]
  }
  
  func main() {
  	var r parser.Request
  
  	// Read the sheet.
  	fname := fmt.Sprintf("sheet-%v.json", uuid)
  	b, err := ioutil.ReadFile(fname)
  	check(err)
  
  	err = json.Unmarshal(b, &r.Sheet)
  	check(err)
  
  	// Read stdin.
  	s := bufio.NewScanner(os.Stdin)
  	for s.Scan() {
  		if l := s.Text(); l == "end of kernel" {
  			break
  		} else {
  			r.Log = append(r.Log, l)
  		}
  	}
  
  	// Parse.
  	p := parser.New()
  	result := p.Parse(&r)
  
  	// Print.
  	fmt.Print(result)
  }