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 . gofimports -w --company github.com/make-go-great,github.com/haunt98 .
gofumpt -w -extra . 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: dztech_dz60rgb_wkl:
# Copy # Copy
rm -rf ~/qmk_firmware/keyboards/dztech/dz60rgb_wkl/keymaps/haunt98 rm -rf ~/qmk_firmware/keyboards/dztech/dz60rgb_wkl/keymaps/haunt98
@ -38,6 +42,3 @@ dztech_dz60rgb_wkl:
# JSON # JSON
rm -rf dztech_dz60rgb_wkl/keymaps_json/haunt98/keymap.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 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 ( import (
"encoding/json" "encoding/json"
"flag"
"log" "log"
"os" "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() { func main() {
debug := strings.EqualFold(os.Getenv("DEBUG"), "true") flag.Parse()
filenameInfo := os.Getenv("QMK_INFO") if flagQMKInfo == "" {
if filenameInfo == "" { log.Fatalln("Flag --qmk-info is empty")
log.Fatalln("ENV QMK_INFO empty")
}
if debug {
log.Printf("filenameInfo: [%s]\n", filenameInfo)
} }
filenameKeymap := os.Getenv("QMK_KEYMAP") if flagQMKKeymap == "" {
if filenameKeymap == "" { log.Fatalln("Flag --qmk-keymap is empty")
log.Fatalln("ENV QMK_KEYMAP empty")
}
if debug {
log.Printf("filenameKeymap: [%s]\n", filenameKeymap)
} }
filenameOut := os.Getenv("OUT") if flagDebug {
if debug { log.Printf("flagQMKInfo: [%s]\n", flagQMKInfo)
log.Printf("filenameOut: [%s]\n", filenameOut) 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 { if err != nil {
log.Fatalln("Failed to read file", filenameInfo, err) log.Fatalln("Failed to read file", flagQMKInfo, err)
}
bytesKeymap, err := os.ReadFile(filenameKeymap)
if err != nil {
log.Fatalln("Failed to read file", filenameKeymap, err)
} }
qmkInfo := QMKInfo{} qmkInfo := QMKInfo{}
if err := json.Unmarshal(bytesInfo, &qmkInfo); err != nil { 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{} qmkKeymap := QMKKeymap{}
if err := json.Unmarshal(bytesKeymap, &qmkKeymap); err != nil { 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( result := Draw(
qmkInfo.Layouts, qmkInfo.Layouts,
qmkKeymap, qmkKeymap,
) )
if debug { if flagDebug {
log.Printf("Result:\n%s\n", result) log.Printf("Result:\n%s\n", result)
} }
// Optional // Optional
if filenameOut != "" { if flagOutput != "" {
if err := os.WriteFile(filenameOut, []byte(result), 0o600); err != nil { if err := os.WriteFile(flagOutput, []byte(result), 0o600); err != nil {
log.Fatalln("Failed to write file", filenameOut, err) log.Fatalln("Failed to write file", flagOutput, err)
} }
} }
} }