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" )
+}
+