annotate src/entai_app/entai_app.go @ 1:3dafd57af3b1

bug-fix.
author pyon@macmini
date Thu, 06 Oct 2016 00:55:26 +0900
parents de451fa0c9cd
children 451c99c1d9de
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
1 /****************************************************************************/
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
2 /* Entai_app.go ( ver 0.2 ) */
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
3 /* Last Change: 2016-10-06 Thu 00:49:10. */
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
4 /****************************************************************************/
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
5
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
6 package main
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
7
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
8 import (
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
9 "bufio"
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
10 "flag"
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
11 "fmt"
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
12 "os"
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
13 "strconv"
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
14 "strings"
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
15 "time"
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
16
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
17 "entai"
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
18 )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
19
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
20 func main() {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
21
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
22 var entai entai.Entai
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
23
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
24 // arguments
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
25 h := flag.Bool( "h", false, "help" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
26 r := flag.Bool( "r", false, "print rate" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
27 l := flag.Bool( "l", false, "1-liner mode" )
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
28 b := flag.Bool( "b", false, "batch mode" )
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
29 v := flag.Bool( "v", false, "print verbose in 1-liner mode")
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
30 i := flag.Bool( "i", false, "print input value in 1-liner mode")
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
31 d := flag.Bool( "d", false, "intaracitve mode")
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
32 s := flag.Bool( "s", false, "server mode" )
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
33 p := flag.Int( "p", 8080, "listen port in server mode" )
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
34
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
35 flag.Parse()
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
36
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
37 if flag.NFlag() == 0 {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
38 PrintTile()
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
39 flag.PrintDefaults()
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
40 fmt.Fprint( os.Stderr, "\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
41 os.Exit( 1 )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
42 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
43
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
44 if *h {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
45 PrintTile()
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
46 fmt.Fprint( os.Stderr, "1-liner mode:\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
47 fmt.Fprint( os.Stderr, "> entai_app -l 20160731 20161224 30000\n\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
48 fmt.Fprint( os.Stderr, "> entai_app -i -l 20160731 20161224 30000\n\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
49 fmt.Fprint( os.Stderr, "> entai_app -i -v -l 20160731 20161224 30000\n\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
50 fmt.Fprint( os.Stderr, "server mode:\n" )
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
51 fmt.Fprint( os.Stderr, "> entai_app -s -p 3000\n" )
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
52 os.Exit( 0 )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
53 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
54
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
55 if *r {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
56 PrintTile()
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
57 fmt.Fprint( os.Stderr, entai.GetRate() )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
58 os.Exit( 0 )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
59 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
60
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
61 if *s {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
62 *p = 8080
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
63 fmt.Fprint( os.Stderr, "server mode is not implemented.\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
64 os.Exit( 0 )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
65 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
66
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
67 if *d {
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
68 PrintTile()
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
69 //layout := "20060102"
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
70 //for {
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
71 //}
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
72 os.Exit( 0 )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
73 }
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
74
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
75 if *l {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
76 layout := "20060102"
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
77
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
78 d, err := time.Parse( layout, flag.Arg(0) ); if err != nil {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
79 fmt.Fprint( os.Stderr, "bad date format.\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
80 os.Exit( 1 )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
81 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
82 p, err := time.Parse( layout, flag.Arg(1) ); if err != nil {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
83 fmt.Fprint( os.Stderr, "bad date format.\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
84 os.Exit( 1 )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
85 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
86
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
87 t, err := strconv.Atoi( flag.Arg(2) )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
88 if err != nil || t < 0 {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
89 fmt.Fprint( os.Stderr, "bad money format.\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
90 os.Exit( 1 )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
91 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
92
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
93 if *i {
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
94 fmt.Printf( "%v,%v,%d,", d.Format( layout ), p.Format( layout ), t )
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
95 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
96
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
97 // MAIN
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
98 entai.Set( d, p, t )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
99 result, detail := entai.Result()
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
100 //
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
101
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
102 fmt.Print( result )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
103
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
104 if *v {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
105 fmt.Print( ",", detail )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
106 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
107 fmt.Print( "\n" )
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
108 os.Exit( 0 )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
109 }
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
110
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
111 if *b {
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
112 files := flag.Args()
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
113 if len( files ) == 0 {
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
114 fmt.Fprint( os.Stderr, "no input file.\n" )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
115 os.Exit( 1 )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
116 } else {
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
117 for _, file := range files {
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
118 f, err := os.Open( file ); if err != nil {
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
119 fmt.Fprintf( os.Stderr, "cannot open file.[%v]\n", err )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
120 os.Exit( 1 )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
121 }
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
122 input := bufio.NewScanner( f )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
123 b := bufio.NewWriter( os.Stdout )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
124 for input.Scan() {
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
125 s := strings.Split( input.Text(), "," )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
126 fmt.Fprint( b, s[0] )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
127 }
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
128 b.Flush()
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
129 f.Close()
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
130 }
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
131 os.Exit( 0 )
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
132 }
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
133 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
134 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
135
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
136 func PrintTile() {
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
137 fmt.Fprint( os.Stderr, "\n==================================================\n" )
1
3dafd57af3b1 bug-fix.
pyon@macmini
parents: 0
diff changeset
138 fmt.Fprint( os.Stderr, " Entai_app ver 0.2 ( 2016.10.09 ) - since 2016\n" )
0
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
139 fmt.Fprint( os.Stderr, "==================================================\n\n" )
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
140 }
de451fa0c9cd golang repository.
pyon@macmini
parents:
diff changeset
141