0
|
1 /****************************************************************************/
|
|
2 /* Entai_app.go ( ver 0.1 ) */
|
|
3 /* Last Change: 2016-09-30 Fri 22:09:50. */
|
|
4 /****************************************************************************/
|
|
5
|
|
6 package main
|
|
7
|
|
8 import (
|
|
9 "flag"
|
|
10 "fmt"
|
|
11 "os"
|
|
12 "strconv"
|
|
13 "time"
|
|
14
|
|
15 "entai"
|
|
16 )
|
|
17
|
|
18 func main() {
|
|
19
|
|
20 var entai entai.Entai
|
|
21
|
|
22 // arguments
|
|
23 h := flag.Bool( "h", false, "help" )
|
|
24 r := flag.Bool( "r", false, "print rate" )
|
|
25 l := flag.Bool( "l", false, "1-liner mode" )
|
|
26 v := flag.Bool( "v", false, "print verbose in 1-liner mode")
|
|
27 i := flag.Bool( "i", false, "print input in 1-liner mode")
|
|
28 s := flag.Bool( "s", false, "server mode" )
|
|
29 p := flag.Int( "p", 80, "listen port in server mode" )
|
|
30
|
|
31 flag.Parse()
|
|
32
|
|
33 if flag.NFlag() == 0 {
|
|
34 PrintTile()
|
|
35 flag.PrintDefaults()
|
|
36 fmt.Fprint( os.Stderr, "\n" )
|
|
37 os.Exit( 1 )
|
|
38 }
|
|
39
|
|
40 if *h {
|
|
41 PrintTile()
|
|
42 fmt.Fprint( os.Stderr, "1-liner mode:\n" )
|
|
43 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" )
|
|
45 fmt.Fprint( os.Stderr, "> entai_app -i -v -l 20160731 20161224 30000\n\n" )
|
|
46 fmt.Fprint( os.Stderr, "server mode:\n" )
|
|
47 fmt.Fprint( os.Stderr, "> entai_app -s -p 8080\n" )
|
|
48 os.Exit( 0 )
|
|
49 }
|
|
50
|
|
51 if *r {
|
|
52 PrintTile()
|
|
53 fmt.Fprint( os.Stderr, entai.GetRate() )
|
|
54 os.Exit( 0 )
|
|
55 }
|
|
56
|
|
57 if *s {
|
|
58 *p = 8080
|
|
59 fmt.Fprint( os.Stderr, "server mode is not implemented.\n" )
|
|
60 os.Exit( 0 )
|
|
61 }
|
|
62
|
|
63 if *l {
|
|
64 layout := "20060102"
|
|
65
|
|
66 d, err := time.Parse( layout, flag.Arg(0) ); if err != nil {
|
|
67 fmt.Fprint( os.Stderr, "bad date format.\n" )
|
|
68 os.Exit( 1 )
|
|
69 }
|
|
70 p, err := time.Parse( layout, flag.Arg(1) ); if err != nil {
|
|
71 fmt.Fprint( os.Stderr, "bad date format.\n" )
|
|
72 os.Exit( 1 )
|
|
73 }
|
|
74
|
|
75 t, err := strconv.Atoi( flag.Arg(2) )
|
|
76 if err != nil || t < 0 {
|
|
77 fmt.Fprint( os.Stderr, "bad money format.\n" )
|
|
78 os.Exit( 1 )
|
|
79 }
|
|
80
|
|
81 if *i {
|
|
82 fmt.Printf( "%v,%v,%d,", d.Format( layout ), p.Format( layout ), g )
|
|
83 }
|
|
84
|
|
85 // MAIN
|
|
86 entai.Set( d, p, t )
|
|
87 result, detail := entai.Result()
|
|
88 //
|
|
89
|
|
90 fmt.Print( result )
|
|
91
|
|
92 if *v {
|
|
93 fmt.Print( ",", detail )
|
|
94 }
|
|
95 fmt.Print( "\n" )
|
|
96 }
|
|
97 }
|
|
98
|
|
99 func PrintTile() {
|
|
100 fmt.Fprint( os.Stderr, "\n==================================================\n" )
|
|
101 fmt.Fprint( os.Stderr, " Entai_app ver 0.1 ( 2016.09.29 ) - since 2016\n" )
|
|
102 fmt.Fprint( os.Stderr, "==================================================\n\n" )
|
|
103 }
|
|
104
|