3
|
1 package lectable
|
|
2
|
|
3 import (
|
|
4 "context"
|
|
5 "flag"
|
|
6 "fmt"
|
|
7 "io"
|
|
8 "log"
|
|
9 )
|
|
10
|
|
11 const cmdName = "lectable"
|
|
12
|
|
13 // Run the lectable
|
|
14 func Run(ctx context.Context, argv []string, outStream, errStream io.Writer) error {
|
|
15 log.SetOutput(errStream)
|
|
16 fs := flag.NewFlagSet(
|
|
17 fmt.Sprintf("%s (v%s rev:%s)", cmdName, version, revision), flag.ContinueOnError)
|
|
18 fs.SetOutput(errStream)
|
|
19 ver := fs.Bool("version", false, "display version")
|
|
20 if err := fs.Parse(argv); err != nil {
|
|
21 return err
|
|
22 }
|
|
23 if *ver {
|
|
24 return printVersion(outStream)
|
|
25 }
|
|
26 return nil
|
|
27 }
|
|
28
|
|
29 func printVersion(out io.Writer) error {
|
|
30 _, err := fmt.Fprintf(out, "%s v%s (rev:%s)\n", cmdName, version, revision)
|
|
31 return err
|
|
32 }
|