70 lines
1.1 KiB
Markdown
70 lines
1.1 KiB
Markdown
|
Being a programmer can be a lonely job. Thankfully by the power of automation
|
||
|
that is not the case! Let's create a greeter app to fend off our demons of
|
||
|
loneliness!
|
||
|
|
||
|
Start by creating a directory named `greet`, and within it, add a file,
|
||
|
`greet.go` with the following code in it:
|
||
|
|
||
|
<!-- {
|
||
|
"output": "Hello friend!"
|
||
|
} -->
|
||
|
``` go
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"log"
|
||
|
"os"
|
||
|
|
||
|
"github.com/urfave/cli"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
app := cli.NewApp()
|
||
|
app.Name = "greet"
|
||
|
app.Usage = "fight the loneliness!"
|
||
|
app.Action = func(c *cli.Context) error {
|
||
|
fmt.Println("Hello friend!")
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
err := app.Run(os.Args)
|
||
|
if err != nil {
|
||
|
log.Fatal(err)
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
Install our command to the `$GOPATH/bin` directory:
|
||
|
|
||
|
```
|
||
|
$ go install
|
||
|
```
|
||
|
|
||
|
Finally run our new command:
|
||
|
|
||
|
```
|
||
|
$ greet
|
||
|
Hello friend!
|
||
|
```
|
||
|
|
||
|
cli also generates neat help text:
|
||
|
|
||
|
```
|
||
|
$ greet help
|
||
|
NAME:
|
||
|
greet - fight the loneliness!
|
||
|
|
||
|
USAGE:
|
||
|
greet [global options] command [command options] [arguments...]
|
||
|
|
||
|
VERSION:
|
||
|
0.0.0
|
||
|
|
||
|
COMMANDS:
|
||
|
help, h Shows a list of commands or help for one command
|
||
|
|
||
|
GLOBAL OPTIONS
|
||
|
--version Shows version information
|
||
|
```
|