qmk_keymaps/cmd/qmkasciigen/main.go

78 lines
1.6 KiB
Go
Raw Normal View History

2023-07-22 22:04:21 +00:00
package main
import (
"encoding/json"
"log"
"os"
"strings"
2023-07-22 22:04:21 +00:00
)
func main() {
debug := strings.EqualFold(os.Getenv("DEBUG"), "true")
2023-07-22 22:04:21 +00:00
filenameInfo := os.Getenv("QMK_INFO")
if filenameInfo == "" {
log.Fatalln("ENV QMK_INFO empty")
}
if debug {
log.Printf("filenameInfo: [%s]\n", filenameInfo)
}
2023-07-22 22:04:21 +00:00
filenameKeymap := os.Getenv("QMK_KEYMAP")
if filenameKeymap == "" {
log.Fatalln("ENV QMK_KEYMAP empty")
}
if debug {
log.Printf("filenameKeymap: [%s]\n", filenameKeymap)
}
filenameOut := os.Getenv("OUT")
if debug {
log.Printf("filenameOut: [%s]\n", filenameOut)
}
postProcessTable := strings.EqualFold(os.Getenv("POST_PROCESS_TABLE"), "true")
if debug {
log.Printf("postProcessTable: [%v]\n", postProcessTable)
}
2023-07-22 22:04:21 +00:00
bytesInfo, err := os.ReadFile(filenameInfo)
if err != nil {
log.Fatalln("Failed to read file", filenameInfo, err)
}
bytesKeymap, err := os.ReadFile(filenameKeymap)
if err != nil {
log.Fatalln("Failed to read file", filenameKeymap, err)
}
qmkInfo := QMKInfo{}
if err := json.Unmarshal(bytesInfo, &qmkInfo); err != nil {
log.Fatalln("Failed to json unmarshal", filenameInfo, err)
}
qmkKeymap := QMKKeymap{}
if err := json.Unmarshal(bytesKeymap, &qmkKeymap); err != nil {
log.Fatalln("Failed to json unmarshal", filenameKeymap, err)
}
result := Draw(
qmkInfo.Layouts,
qmkKeymap,
DrawConfig{
Debug: debug,
PostProcessTable: postProcessTable,
},
2023-07-22 22:04:21 +00:00
)
if debug {
log.Printf("Result:\n%s\n", result)
}
2023-07-22 22:49:09 +00:00
// Optional
if filenameOut != "" {
2023-07-24 06:32:43 +00:00
if err := os.WriteFile(filenameOut, []byte(result), 0o600); err != nil {
log.Fatalln("Failed to write file", filenameOut, err)
}
2023-07-22 22:49:09 +00:00
}
2023-07-22 22:04:21 +00:00
}