Mercurial > mercurial > hgweb_golang.cgi
view src/entai_app/entai_app.go @ 1:3dafd57af3b1
bug-fix.
author | pyon@macmini |
---|---|
date | Thu, 06 Oct 2016 00:55:26 +0900 |
parents | de451fa0c9cd |
children | 451c99c1d9de |
line wrap: on
line source
/****************************************************************************/ /* Entai_app.go ( ver 0.2 ) */ /* Last Change: 2016-10-06 Thu 00:49:10. */ /****************************************************************************/ package main import ( "bufio" "flag" "fmt" "os" "strconv" "strings" "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" ) b := flag.Bool( "b", false, "batch mode" ) v := flag.Bool( "v", false, "print verbose in 1-liner mode") i := flag.Bool( "i", false, "print input value in 1-liner mode") d := flag.Bool( "d", false, "intaracitve mode") s := flag.Bool( "s", false, "server mode" ) p := flag.Int( "p", 8080, "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 3000\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 *d { PrintTile() //layout := "20060102" //for { //} 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 ), t ) } // MAIN entai.Set( d, p, t ) result, detail := entai.Result() // fmt.Print( result ) if *v { fmt.Print( ",", detail ) } fmt.Print( "\n" ) os.Exit( 0 ) } if *b { files := flag.Args() if len( files ) == 0 { fmt.Fprint( os.Stderr, "no input file.\n" ) os.Exit( 1 ) } else { for _, file := range files { f, err := os.Open( file ); if err != nil { fmt.Fprintf( os.Stderr, "cannot open file.[%v]\n", err ) os.Exit( 1 ) } input := bufio.NewScanner( f ) b := bufio.NewWriter( os.Stdout ) for input.Scan() { s := strings.Split( input.Text(), "," ) fmt.Fprint( b, s[0] ) } b.Flush() f.Close() } os.Exit( 0 ) } } } func PrintTile() { fmt.Fprint( os.Stderr, "\n==================================================\n" ) fmt.Fprint( os.Stderr, " Entai_app ver 0.2 ( 2016.10.09 ) - since 2016\n" ) fmt.Fprint( os.Stderr, "==================================================\n\n" ) }