miqt/cmd/miqt-uic/main.go

55 lines
909 B
Go
Raw Normal View History

2024-09-20 18:39:01 +12:00
package main
import (
"encoding/xml"
"flag"
2024-09-20 18:39:01 +12:00
"fmt"
"io/ioutil"
"os"
"strings"
2024-09-20 18:39:01 +12:00
)
2025-02-07 17:58:12 +13:00
const (
DefaultIsQt6 = false
)
2024-09-20 18:39:01 +12:00
func main() {
inFile := flag.String("InFile", "", "Input .ui file")
outFile := flag.String("OutFile", "-", "Output .go file, or - for stdout")
2025-02-07 17:58:12 +13:00
useQt6 := flag.Bool("Qt6", DefaultIsQt6, "Use Qt 6 instead of Qt 5")
packageName := flag.String("Package", "main", "Custom package name")
flag.Parse()
if *inFile == "" {
flag.Usage()
os.Exit(1)
}
inXml, err := ioutil.ReadFile(*inFile)
2024-09-20 18:39:01 +12:00
if err != nil {
panic(err)
}
var parsed UiFile
err = xml.Unmarshal(inXml, &parsed)
2024-09-20 18:39:01 +12:00
if err != nil {
panic(err)
}
2025-02-07 17:58:12 +13:00
gosrc, err := generate(*packageName, strings.Join(os.Args[1:], " "), parsed, *useQt6)
2024-09-20 18:39:01 +12:00
if err != nil {
panic(err)
}
if *outFile == "-" {
fmt.Println(string(gosrc))
2024-09-20 18:39:01 +12:00
} else {
2024-09-20 18:39:01 +12:00
err = ioutil.WriteFile(*outFile, gosrc, 0644)
if err != nil {
panic(err)
}
}
2024-09-20 18:39:01 +12:00
}