1
0
Fork 0
duckycode/generate.sh
2019-02-11 23:58:53 +01:00

42 lines
817 B
Bash
Executable file

#!/bin/sh
dir="pkg/lang"
parse_keys() {
local file="${1%.*}"
local file="${file#*/}"
local file="${dir}/${file}.go"
cat <<EOF>${file}
package lang
var K = map[string]byte{
"": 0,
EOF
grep -v -E "^$|^/" $1 | sed 's/=//g' | awk '{print "\""$1"\": "$2","}' >>${file}
echo "}" >>${file}
gofmt -w ${file}
}
parse_lang() {
local lang="${1%.*}"
local lang="${lang#*/}"
local file="${dir}/${lang}.go"
cat <<EOF>${file}
package lang
func init() {
l := make(Lang)
EOF
grep -E "^A|^I|^U" $1 | sed 's/= \|,//g' | awk '{print "l[\""$1"\"] = Key{K[\""$2"\"],K[\""$3"\"]}"}' >>${file}
echo "Langs[\"${lang}\"] = l" >>${file}
echo "}" >>${file}
gofmt -w ${file}
}
for f in $(ls keyboard/*.properties); do
parse_keys "${f}"
done
for f in $(ls language/*.properties); do
parse_lang "${f}"
done