42 lines
817 B
Bash
Executable file
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
|