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