/
cli.go
36 lines (32 loc) · 1.1 KB
/
cli.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package cli
import (
"fmt"
"os"
"github.com/op/go-logging"
"github.com/urfave/cli"
)
var log = logging.MustGetLogger("cli")
func Run(version, commit string, args []string) {
app := cli.NewApp()
app.EnableBashCompletion = true
app.Name = "gatewaysshd"
app.Version = fmt.Sprintf("%s.%s", version, commit)
app.Usage = "A daemon that provides a meeting place for all your SSH tunnels."
app.Flags = flags
app.Before = func(c *cli.Context) error {
formatter := logging.MustStringFormatter("%{color}%{time:2006-01-02T15:04:05.000-07:00} [%{level}] <%{pid}> [%{shortfile} %{shortfunc}] %{message}%{color:reset}")
logging.SetBackend(logging.NewBackendFormatter(logging.NewLogBackend(os.Stderr, "", 0), formatter))
if level, err := logging.LogLevel(c.String("log-level")); err == nil {
logging.SetLevel(level, "")
}
log.Debugf("log level set to %s", logging.GetLevel(""))
log.Noticef("started %s version %s", app.Name, app.Version)
return nil
}
app.After = func(c *cli.Context) error {
log.Noticef("exiting %s version %s ...", app.Name, app.Version)
return nil
}
app.Action = run
_ = app.Run(args)
}