Mercurial > mercurial > hgweb_golang.cgi
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 |
