From 8724aaf18312e54750540a9578e00d61b1c545d8 Mon Sep 17 00:00:00 2001 From: Eyal Posener Date: Thu, 14 Nov 2019 06:51:44 +0200 Subject: V2 --- example/stdlib/main.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 example/stdlib/main.go (limited to 'example/stdlib/main.go') diff --git a/example/stdlib/main.go b/example/stdlib/main.go new file mode 100644 index 0000000..03c6391 --- /dev/null +++ b/example/stdlib/main.go @@ -0,0 +1,35 @@ +// stdlib shows how to have flags bash completion to an arbitrary Go program that uses the standard +// library flag package. +package main + +import ( + "flag" + "fmt" + "os" + + "github.com/posener/complete" +) + +var ( + // Add variables to the program. + name = flag.String("name", "", "Give your name") + something = flag.String("something", "", "Expect somthing, but we don't know what, so no other completion options will be provided.") + nothing = flag.String("nothing", "", "Expect nothing after flag, so other completion can be provided.") +) + +func main() { + // Run the completion. Notice that since we are using standard library flags, only the flag + // names will be completed and not their values. + complete.CommandLine("stdlib") + + // Parse the flags. + flag.Parse() + + // Program logic. + if *name == "" { + fmt.Println("Your name is missing") + os.Exit(1) + } + + fmt.Println("Hi,", name) +} -- cgit v1.2.3