feat(qmkasciigen): use flag instead of os.ENV

main
sudo pacman -Syu 2023-07-28 17:03:41 +07:00
parent f55c03e80b
commit cc2776a3dc
2 changed files with 41 additions and 33 deletions

View File

@ -26,6 +26,10 @@ go:
gofimports -w --company github.com/make-go-great,github.com/haunt98 .
gofumpt -w -extra .
draw:
curl https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/dztech/dz60rgb_wkl/info.json --output dztech_dz60rgb_wkl/info.json
go run ./cmd/qmkasciigen/*.go -debug -qmk-info dztech_dz60rgb_wkl/info.json -qmk-keymap=dztech_dz60rgb_wkl/keymaps_json/haunt98/keymap.json -out dztech_dz60rgb_wkl/asciiart/haunt98.txt
dztech_dz60rgb_wkl:
# Copy
rm -rf ~/qmk_firmware/keyboards/dztech/dz60rgb_wkl/keymaps/haunt98
@ -38,6 +42,3 @@ dztech_dz60rgb_wkl:
# JSON
rm -rf dztech_dz60rgb_wkl/keymaps_json/haunt98/keymap.json
qmk c2json -kb dztech/dz60rgb_wkl/v2_1 -km haunt98 -o dztech_dz60rgb_wkl/keymaps_json/haunt98/keymap.json dztech_dz60rgb_wkl/keymaps/haunt98/keymap.c
# Draw
curl https://raw.githubusercontent.com/qmk/qmk_firmware/master/keyboards/dztech/dz60rgb_wkl/info.json --output dztech_dz60rgb_wkl/info.json
QMK_INFO=dztech_dz60rgb_wkl/info.json QMK_KEYMAP=dztech_dz60rgb_wkl/keymaps_json/haunt98/keymap.json OUT=dztech_dz60rgb_wkl/asciiart/haunt98.txt POST_PROCESS_TABLE=true go run ./cmd/qmkasciigen/*.go

View File

@ -2,67 +2,74 @@ package main
import (
"encoding/json"
"flag"
"log"
"os"
"strings"
)
var (
flagDebug bool
flagQMKInfo string
flagQMKKeymap string
flagOutput string
)
func init() {
flag.BoolVar(&flagDebug, "debug", false, "Debug mode, print eveyrthing")
flag.StringVar(&flagQMKInfo, "qmk-info", "", "QMK info json file")
flag.StringVar(&flagQMKKeymap, "qmk-keymap", "", "QMK keymap json file")
flag.StringVar(&flagOutput, "out", "", "Output file")
}
func main() {
debug := strings.EqualFold(os.Getenv("DEBUG"), "true")
flag.Parse()
filenameInfo := os.Getenv("QMK_INFO")
if filenameInfo == "" {
log.Fatalln("ENV QMK_INFO empty")
}
if debug {
log.Printf("filenameInfo: [%s]\n", filenameInfo)
if flagQMKInfo == "" {
log.Fatalln("Flag --qmk-info is empty")
}
filenameKeymap := os.Getenv("QMK_KEYMAP")
if filenameKeymap == "" {
log.Fatalln("ENV QMK_KEYMAP empty")
}
if debug {
log.Printf("filenameKeymap: [%s]\n", filenameKeymap)
if flagQMKKeymap == "" {
log.Fatalln("Flag --qmk-keymap is empty")
}
filenameOut := os.Getenv("OUT")
if debug {
log.Printf("filenameOut: [%s]\n", filenameOut)
if flagDebug {
log.Printf("flagQMKInfo: [%s]\n", flagQMKInfo)
log.Printf("flagQMKKeymap: [%s]\n", flagQMKKeymap)
log.Printf("flagOutput: [%s]\n", flagOutput)
}
bytesInfo, err := os.ReadFile(filenameInfo)
bytesInfo, err := os.ReadFile(flagQMKInfo)
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)
log.Fatalln("Failed to read file", flagQMKInfo, err)
}
qmkInfo := QMKInfo{}
if err := json.Unmarshal(bytesInfo, &qmkInfo); err != nil {
log.Fatalln("Failed to json unmarshal", filenameInfo, err)
log.Fatalln("Failed to json unmarshal", flagQMKInfo, err)
}
bytesKeymap, err := os.ReadFile(flagQMKKeymap)
if err != nil {
log.Fatalln("Failed to read file", flagQMKKeymap, err)
}
qmkKeymap := QMKKeymap{}
if err := json.Unmarshal(bytesKeymap, &qmkKeymap); err != nil {
log.Fatalln("Failed to json unmarshal", filenameKeymap, err)
log.Fatalln("Failed to json unmarshal", flagQMKKeymap, err)
}
result := Draw(
qmkInfo.Layouts,
qmkKeymap,
)
if debug {
if flagDebug {
log.Printf("Result:\n%s\n", result)
}
// Optional
if filenameOut != "" {
if err := os.WriteFile(filenameOut, []byte(result), 0o600); err != nil {
log.Fatalln("Failed to write file", filenameOut, err)
if flagOutput != "" {
if err := os.WriteFile(flagOutput, []byte(result), 0o600); err != nil {
log.Fatalln("Failed to write file", flagOutput, err)
}
}
}