view src/gogemo/main.go @ 59:48e46bfe97fa

kaigo: pre-release eraline.
author pyon@macmini
date Wed, 12 Aug 2020 19:57:58 +0900
parents a273d4792e48
children
line wrap: on
line source

/*
 Gogemo: Command-line Migemo program by go.
 Last Change: 2019-02-25 Mon 22:49:03.

 Written by T.Mutoh
*/
package main

import (
    "flag"
    "fmt"
    "os"

    "./gogemo"
)

const ver string = "1.2a"

func main() {
    inv  := flag.Bool("v", false, "inverse (not implement)")
    wfn  := flag.Bool("f", false, "print with filename")
    look := flag.Bool("l", false, "lookup dictionary")
    dout := flag.Bool("d", false, "dump dictionary (all words)")
    // cnt := flag.Bool("c", false, "count matched")
    // iu  := flag.Bool("w", false, "input  encoding: utf-8")
    // ou  := flag.Bool("W", false, "output encoding: utf-8")
    // is  := flag.Bool("s", false, "output encoding: shift-jis")
    // os  := flag.Bool("S", false, "output encoding: shift-jis")
    flag.Parse()

    var g gogemo.Gogemo
    g.SetOptions(*inv, *wfn)

    switch flag.NArg() {
    case 0:
        if *dout {
            g.PrintDictionary()
            os.Exit(0)
        }
        print_help()
        os.Exit(0)
    case 1: // from stdin or look dict
        g.Prepare(flag.Arg(0), nil)
        if *look {
            g.Look()
            os.Exit(0)
        }
    default:
        g.Prepare(flag.Arg(0), flag.Args()[1:])
    }

    g.Search()
}

func print_help() {
    fmt.Fprint(os.Stderr, "[ gogemo v" + ver + " ]\n")
    flag.PrintDefaults()
    fmt.Fprint(os.Stderr, "\n")
    fmt.Fprint(os.Stderr, " $ gogemo roma file\n")
    fmt.Fprint(os.Stderr, " $ cat file1 file2 | gogemo roma\n")
    fmt.Fprint(os.Stderr, " $ gogemo -f roma file1 file2...\n")
    fmt.Fprint(os.Stderr, " $ gogemo -l roma\n")
    fmt.Fprint(os.Stderr, " $ gogemo -d > dict.csv\n")
}