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