diff --git a/Makefile b/Makefile index a7400b3..4ee1d6b 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/cmd/qmkasciigen/main.go b/cmd/qmkasciigen/main.go index d4cd017..90e9ea3 100644 --- a/cmd/qmkasciigen/main.go +++ b/cmd/qmkasciigen/main.go @@ -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) } } }