Mercurial > mercurial > hgweb_golang.cgi
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 0:de451fa0c9cd | 1:3dafd57af3b1 |
|---|---|
| 1 /****************************************************************************/ | 1 /****************************************************************************/ |
| 2 /* Entai_app.go ( ver 0.1 ) */ | 2 /* Entai_app.go ( ver 0.2 ) */ |
| 3 /* Last Change: 2016-09-30 Fri 22:09:50. */ | 3 /* Last Change: 2016-10-06 Thu 00:49:10. */ |
| 4 /****************************************************************************/ | 4 /****************************************************************************/ |
| 5 | 5 |
| 6 package main | 6 package main |
| 7 | 7 |
| 8 import ( | 8 import ( |
| 9 "bufio" | |
| 9 "flag" | 10 "flag" |
| 10 "fmt" | 11 "fmt" |
| 11 "os" | 12 "os" |
| 12 "strconv" | 13 "strconv" |
| 14 "strings" | |
| 13 "time" | 15 "time" |
| 14 | 16 |
| 15 "entai" | 17 "entai" |
| 16 ) | 18 ) |
| 17 | 19 |
| 21 | 23 |
| 22 // arguments | 24 // arguments |
| 23 h := flag.Bool( "h", false, "help" ) | 25 h := flag.Bool( "h", false, "help" ) |
| 24 r := flag.Bool( "r", false, "print rate" ) | 26 r := flag.Bool( "r", false, "print rate" ) |
| 25 l := flag.Bool( "l", false, "1-liner mode" ) | 27 l := flag.Bool( "l", false, "1-liner mode" ) |
| 28 b := flag.Bool( "b", false, "batch mode" ) | |
| 26 v := flag.Bool( "v", false, "print verbose in 1-liner mode") | 29 v := flag.Bool( "v", false, "print verbose in 1-liner mode") |
| 27 i := flag.Bool( "i", false, "print input in 1-liner mode") | 30 i := flag.Bool( "i", false, "print input value in 1-liner mode") |
| 31 d := flag.Bool( "d", false, "intaracitve mode") | |
| 28 s := flag.Bool( "s", false, "server mode" ) | 32 s := flag.Bool( "s", false, "server mode" ) |
| 29 p := flag.Int( "p", 80, "listen port in server mode" ) | 33 p := flag.Int( "p", 8080, "listen port in server mode" ) |
| 30 | 34 |
| 31 flag.Parse() | 35 flag.Parse() |
| 32 | 36 |
| 33 if flag.NFlag() == 0 { | 37 if flag.NFlag() == 0 { |
| 34 PrintTile() | 38 PrintTile() |
| 42 fmt.Fprint( os.Stderr, "1-liner mode:\n" ) | 46 fmt.Fprint( os.Stderr, "1-liner mode:\n" ) |
| 43 fmt.Fprint( os.Stderr, "> entai_app -l 20160731 20161224 30000\n\n" ) | 47 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" ) | 48 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" ) | 49 fmt.Fprint( os.Stderr, "> entai_app -i -v -l 20160731 20161224 30000\n\n" ) |
| 46 fmt.Fprint( os.Stderr, "server mode:\n" ) | 50 fmt.Fprint( os.Stderr, "server mode:\n" ) |
| 47 fmt.Fprint( os.Stderr, "> entai_app -s -p 8080\n" ) | 51 fmt.Fprint( os.Stderr, "> entai_app -s -p 3000\n" ) |
| 48 os.Exit( 0 ) | 52 os.Exit( 0 ) |
| 49 } | 53 } |
| 50 | 54 |
| 51 if *r { | 55 if *r { |
| 52 PrintTile() | 56 PrintTile() |
| 55 } | 59 } |
| 56 | 60 |
| 57 if *s { | 61 if *s { |
| 58 *p = 8080 | 62 *p = 8080 |
| 59 fmt.Fprint( os.Stderr, "server mode is not implemented.\n" ) | 63 fmt.Fprint( os.Stderr, "server mode is not implemented.\n" ) |
| 64 os.Exit( 0 ) | |
| 65 } | |
| 66 | |
| 67 if *d { | |
| 68 PrintTile() | |
| 69 //layout := "20060102" | |
| 70 //for { | |
| 71 //} | |
| 60 os.Exit( 0 ) | 72 os.Exit( 0 ) |
| 61 } | 73 } |
| 62 | 74 |
| 63 if *l { | 75 if *l { |
| 64 layout := "20060102" | 76 layout := "20060102" |
| 77 fmt.Fprint( os.Stderr, "bad money format.\n" ) | 89 fmt.Fprint( os.Stderr, "bad money format.\n" ) |
| 78 os.Exit( 1 ) | 90 os.Exit( 1 ) |
| 79 } | 91 } |
| 80 | 92 |
| 81 if *i { | 93 if *i { |
| 82 fmt.Printf( "%v,%v,%d,", d.Format( layout ), p.Format( layout ), g ) | 94 fmt.Printf( "%v,%v,%d,", d.Format( layout ), p.Format( layout ), t ) |
| 83 } | 95 } |
| 84 | 96 |
| 85 // MAIN | 97 // MAIN |
| 86 entai.Set( d, p, t ) | 98 entai.Set( d, p, t ) |
| 87 result, detail := entai.Result() | 99 result, detail := entai.Result() |
| 91 | 103 |
| 92 if *v { | 104 if *v { |
| 93 fmt.Print( ",", detail ) | 105 fmt.Print( ",", detail ) |
| 94 } | 106 } |
| 95 fmt.Print( "\n" ) | 107 fmt.Print( "\n" ) |
| 108 os.Exit( 0 ) | |
| 109 } | |
| 110 | |
| 111 if *b { | |
| 112 files := flag.Args() | |
| 113 if len( files ) == 0 { | |
| 114 fmt.Fprint( os.Stderr, "no input file.\n" ) | |
| 115 os.Exit( 1 ) | |
| 116 } else { | |
| 117 for _, file := range files { | |
| 118 f, err := os.Open( file ); if err != nil { | |
| 119 fmt.Fprintf( os.Stderr, "cannot open file.[%v]\n", err ) | |
| 120 os.Exit( 1 ) | |
| 121 } | |
| 122 input := bufio.NewScanner( f ) | |
| 123 b := bufio.NewWriter( os.Stdout ) | |
| 124 for input.Scan() { | |
| 125 s := strings.Split( input.Text(), "," ) | |
| 126 fmt.Fprint( b, s[0] ) | |
| 127 } | |
| 128 b.Flush() | |
| 129 f.Close() | |
| 130 } | |
| 131 os.Exit( 0 ) | |
| 132 } | |
| 96 } | 133 } |
| 97 } | 134 } |
| 98 | 135 |
| 99 func PrintTile() { | 136 func PrintTile() { |
| 100 fmt.Fprint( os.Stderr, "\n==================================================\n" ) | 137 fmt.Fprint( os.Stderr, "\n==================================================\n" ) |
| 101 fmt.Fprint( os.Stderr, " Entai_app ver 0.1 ( 2016.09.29 ) - since 2016\n" ) | 138 fmt.Fprint( os.Stderr, " Entai_app ver 0.2 ( 2016.10.09 ) - since 2016\n" ) |
| 102 fmt.Fprint( os.Stderr, "==================================================\n\n" ) | 139 fmt.Fprint( os.Stderr, "==================================================\n\n" ) |
| 103 } | 140 } |
| 104 | 141 |
