cmd/gondole-cli/main.go
author Ollivier Robert <roberto@keltia.net>
Mon, 10 Apr 2017 21:40:05 +0200
changeset 53 da5079cecc3c
parent 38 cmd/gondole/main.go@8343e5264a9b
child 67 1ff7afce37fe
permissions -rw-r--r--
Rename the binary.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
cab58bf80778 Basic CLI-tool for testing.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
     1
package main
cab58bf80778 Basic CLI-tool for testing.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
     2
7
0fbbac6d8e8c We have an skeleton now.
Ollivier Robert <roberto@keltia.net>
parents: 5
diff changeset
     3
import (
38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
     4
	"github.com/keltia/gondole"
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
     5
	"github.com/urfave/cli"
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
     6
	"log"
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
     7
	"os"
7
0fbbac6d8e8c We have an skeleton now.
Ollivier Robert <roberto@keltia.net>
parents: 5
diff changeset
     8
)
0fbbac6d8e8c We have an skeleton now.
Ollivier Robert <roberto@keltia.net>
parents: 5
diff changeset
     9
19
9f4ae6d2a995 Barebone CLI app.
Ollivier Robert <roberto@keltia.net>
parents: 7
diff changeset
    10
var (
38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    11
	fVerbose bool
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    12
    instance *gondole.Gondole
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    13
	cnf      *gondole.Config
19
9f4ae6d2a995 Barebone CLI app.
Ollivier Robert <roberto@keltia.net>
parents: 7
diff changeset
    14
)
9f4ae6d2a995 Barebone CLI app.
Ollivier Robert <roberto@keltia.net>
parents: 7
diff changeset
    15
38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    16
func Register(c *cli.Context) (err error) {
24
a01761bc5837 Register() will be used to load the config & create on first run.
Ollivier Robert <roberto@keltia.net>
parents: 19
diff changeset
    17
38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    18
    instance, err = gondole.NewApp("gondole-cli", nil, gondole.NoRedirect)
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    19
	return err
24
a01761bc5837 Register() will be used to load the config & create on first run.
Ollivier Robert <roberto@keltia.net>
parents: 19
diff changeset
    20
}
a01761bc5837 Register() will be used to load the config & create on first run.
Ollivier Robert <roberto@keltia.net>
parents: 19
diff changeset
    21
a01761bc5837 Register() will be used to load the config & create on first run.
Ollivier Robert <roberto@keltia.net>
parents: 19
diff changeset
    22
func init() {
38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    23
	cli.VersionFlag = cli.BoolFlag{Name: "version, V"}
19
9f4ae6d2a995 Barebone CLI app.
Ollivier Robert <roberto@keltia.net>
parents: 7
diff changeset
    24
38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    25
	cli.VersionPrinter = func(c *cli.Context) {
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    26
		log.Printf("API wrapper: %s Mastodon CLI: %s\n", c.App.Version, gondole.APIVersion)
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    27
	}
24
a01761bc5837 Register() will be used to load the config & create on first run.
Ollivier Robert <roberto@keltia.net>
parents: 19
diff changeset
    28
}
19
9f4ae6d2a995 Barebone CLI app.
Ollivier Robert <roberto@keltia.net>
parents: 7
diff changeset
    29
24
a01761bc5837 Register() will be used to load the config & create on first run.
Ollivier Robert <roberto@keltia.net>
parents: 19
diff changeset
    30
func main() {
19
9f4ae6d2a995 Barebone CLI app.
Ollivier Robert <roberto@keltia.net>
parents: 7
diff changeset
    31
38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    32
	app := cli.NewApp()
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    33
	app.Name = "gondole"
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    34
	app.Usage = "Mastodon CLI interface"
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    35
	app.Author = "Ollivier Robert <roberto@keltia.net>"
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    36
	app.Version = gondole.APIVersion
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    37
	//app.HideVersion = true
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    39
	app.Before = Register
24
a01761bc5837 Register() will be used to load the config & create on first run.
Ollivier Robert <roberto@keltia.net>
parents: 19
diff changeset
    40
38
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    41
	app.Flags = []cli.Flag{
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    42
		cli.BoolFlag{
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    43
			Name:        "verbose,v",
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    44
			Usage:       "verbose mode",
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    45
			Destination: &fVerbose,
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    46
		},
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    47
	}
8343e5264a9b Hook up the application registration + gofmt.
Ollivier Robert <roberto@keltia.net>
parents: 31
diff changeset
    48
	app.Run(os.Args)
5
cab58bf80778 Basic CLI-tool for testing.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
    49
}