Skip to content

Instantly share code, notes, and snippets.

@podhmo
Last active April 21, 2020 17:40
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save podhmo/77810a281236ab8e7a4eb862abb06c1a to your computer and use it in GitHub Desktop.
package main
import (
"flag"
"fmt"
"log"
"os"
)
type Option struct {
Name string
}
func main() {
opt := &Option{}
cmd := flag.NewFlagSet("app", flag.ContinueOnError)
cmd.StringVar(&opt.Name, "name", "foo", "name of person")
cmd.StringVar(&opt.Name, "n", "foo", "(shorthand of --name)")
if err := cmd.Parse(os.Args[1:]); err != nil {
if err != flag.ErrHelp {
cmd.Usage()
}
os.Exit(1)
}
if err := run(opt); err != nil {
log.Fatalf("!!%+v", err)
}
}
func run(opt *Option) error {
Hello(opt.Name)
return nil
}
func Hello(name string) {
fmt.Printf("Hello %s\n", name)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment