41 lines
1015 B
Go
41 lines
1015 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/alecthomas/kong"
|
|
)
|
|
|
|
type VersionFlag bool
|
|
|
|
func (v VersionFlag) Decode(ctx *kong.DecodeContext) error { return nil }
|
|
func (v VersionFlag) IsBool() bool { return true }
|
|
func (v VersionFlag) BeforeApply(app *kong.Kong, vars kong.Vars) error {
|
|
fmt.Println(appName + ": " + appVersion)
|
|
app.Exit(0)
|
|
return nil
|
|
}
|
|
|
|
// Flags supplied to cli.
|
|
type Flags struct {
|
|
Config string `help:"Location of config file" type:"existingfile"`
|
|
IPAddresses []string `help:"List of IP addresses to find."`
|
|
DNSBLFiles []string `help:"List of DNSBL files to scan." type:"path"`
|
|
Version VersionFlag `name:"version" help:"Print version information and quit"`
|
|
}
|
|
|
|
// Parse the supplied flags.
|
|
func (a *App) ParseFlags() *kong.Context {
|
|
app.flags = &Flags{}
|
|
|
|
ctx := kong.Parse(app.flags,
|
|
kong.Name(appName),
|
|
kong.Description(appDescription),
|
|
kong.UsageOnError(),
|
|
kong.ConfigureHelp(kong.HelpOptions{
|
|
Compact: true,
|
|
}),
|
|
)
|
|
return ctx
|
|
}
|