Mercurial > mercurial > hgweb_golang.cgi
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/entai_app/entai_app.go Sat Oct 01 11:16:31 2016 +0900 @@ -0,0 +1,104 @@ +/****************************************************************************/ +/* Entai_app.go ( ver 0.1 ) */ +/* Last Change: 2016-09-30 Fri 22:09:50. */ +/****************************************************************************/ + +package main + +import ( + "flag" + "fmt" + "os" + "strconv" + "time" + + "entai" +) + +func main() { + + var entai entai.Entai + + // arguments + h := flag.Bool( "h", false, "help" ) + r := flag.Bool( "r", false, "print rate" ) + l := flag.Bool( "l", false, "1-liner mode" ) + v := flag.Bool( "v", false, "print verbose in 1-liner mode") + i := flag.Bool( "i", false, "print input in 1-liner mode") + s := flag.Bool( "s", false, "server mode" ) + p := flag.Int( "p", 80, "listen port in server mode" ) + + flag.Parse() + + if flag.NFlag() == 0 { + PrintTile() + flag.PrintDefaults() + fmt.Fprint( os.Stderr, "\n" ) + os.Exit( 1 ) + } + + if *h { + PrintTile() + fmt.Fprint( os.Stderr, "1-liner mode:\n" ) + fmt.Fprint( os.Stderr, "> entai_app -l 20160731 20161224 30000\n\n" ) + fmt.Fprint( os.Stderr, "> entai_app -i -l 20160731 20161224 30000\n\n" ) + fmt.Fprint( os.Stderr, "> entai_app -i -v -l 20160731 20161224 30000\n\n" ) + fmt.Fprint( os.Stderr, "server mode:\n" ) + fmt.Fprint( os.Stderr, "> entai_app -s -p 8080\n" ) + os.Exit( 0 ) + } + + if *r { + PrintTile() + fmt.Fprint( os.Stderr, entai.GetRate() ) + os.Exit( 0 ) + } + + if *s { + *p = 8080 + fmt.Fprint( os.Stderr, "server mode is not implemented.\n" ) + os.Exit( 0 ) + } + + if *l { + layout := "20060102" + + d, err := time.Parse( layout, flag.Arg(0) ); if err != nil { + fmt.Fprint( os.Stderr, "bad date format.\n" ) + os.Exit( 1 ) + } + p, err := time.Parse( layout, flag.Arg(1) ); if err != nil { + fmt.Fprint( os.Stderr, "bad date format.\n" ) + os.Exit( 1 ) + } + + t, err := strconv.Atoi( flag.Arg(2) ) + if err != nil || t < 0 { + fmt.Fprint( os.Stderr, "bad money format.\n" ) + os.Exit( 1 ) + } + + if *i { + fmt.Printf( "%v,%v,%d,", d.Format( layout ), p.Format( layout ), g ) + } + + // MAIN + entai.Set( d, p, t ) + result, detail := entai.Result() + // + + fmt.Print( result ) + + if *v { + fmt.Print( ",", detail ) + } + fmt.Print( "\n" ) + } +} + +func PrintTile() { + fmt.Fprint( os.Stderr, "\n==================================================\n" ) + fmt.Fprint( os.Stderr, " Entai_app ver 0.1 ( 2016.09.29 ) - since 2016\n" ) + fmt.Fprint( os.Stderr, "==================================================\n\n" ) +} +