diff --git a/cli.go b/cli.go index 4722f83..c066b0a 100644 --- a/cli.go +++ b/cli.go @@ -10,6 +10,7 @@ import ( "go/format" "log" "os" + "fmt" gen "github.com/sanbornm/gowsdl/generator" ) @@ -20,6 +21,7 @@ var vers = flag.Bool("v", false, "Shows gowsdl version") var pkg = flag.String("p", "myservice", "Package under which code will be generated") var outFile = flag.String("o", "myservice.go", "File where the generated code will be saved") + func init() { log.SetFlags(0) log.SetOutput(os.Stdout) @@ -27,26 +29,35 @@ func init() { } func main() { + flag.Usage = func() { + fmt.Fprintf(os.Stderr, "Usage: %s [options] myservice.wsdl\n", os.Args[0]) + flag.PrintDefaults() + } + flag.Parse() + // Show app version if *vers { log.Println(version) os.Exit(0) } if len(os.Args) < 2 { - log.Fatalln("WSDL file is required to start the party") + flag.Usage() + os.Exit(0) } if *outFile == os.Args[1] { log.Fatalln("Output file cannot be the same WSDL file") } + // load wsdl gowsdl, err := gen.NewGoWsdl(os.Args[1], *pkg, false) if err != nil { log.Fatalln(err) } + // generate code gocode, err := gowsdl.Start() if err != nil { log.Fatalln(err) @@ -66,6 +77,7 @@ func main() { data.Write(gocode["types"]) data.Write(gocode["operations"]) + // go fmt the generated code source, err := format.Source(data.Bytes()) if err != nil { fd.Write(data.Bytes())