github.com/bluenviron/gomavlib/v2@v2.2.1-0.20240308101627-2c07e3da629c/cmd/dialect-import/main.go (about)

     1  // dialect-import command.
     2  package main
     3  
     4  import (
     5  	"fmt"
     6  	"os"
     7  
     8  	"github.com/alecthomas/kong"
     9  
    10  	"github.com/bluenviron/gomavlib/v2/pkg/conversion"
    11  )
    12  
    13  var cli struct {
    14  	Link bool   `help:"Link included definitions instead of including them into the main definition"`
    15  	XML  string `arg:"" help:"Path or url pointing to a XML Mavlink dialect"`
    16  }
    17  
    18  func run(args []string) error {
    19  	parser, err := kong.New(&cli,
    20  		kong.Description("Convert Mavlink dialects from XML format to Go format."),
    21  		kong.UsageOnError())
    22  	if err != nil {
    23  		return err
    24  	}
    25  
    26  	_, err = parser.Parse(args)
    27  	if err != nil {
    28  		return err
    29  	}
    30  
    31  	return conversion.Convert(cli.XML, cli.Link)
    32  }
    33  
    34  func main() {
    35  	err := run(os.Args[1:])
    36  	if err != nil {
    37  		fmt.Fprintf(os.Stderr, "ERR: %s\n", err)
    38  		os.Exit(1)
    39  	}
    40  }