comparison src/entai_app/entai_app.go @ 0:de451fa0c9cd

golang repository.
author pyon@macmini
date Sat, 01 Oct 2016 11:16:31 +0900
parents
children 3dafd57af3b1
comparison
equal deleted inserted replaced
-1:000000000000 0:de451fa0c9cd
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