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-- |
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 | 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 | 14 |
) |
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 | 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 | 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 | 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 |
} |