#!/bin/sh dir="pkg/lang" parse_keys() { local file="${1%.*}" local file="${file#*/}" local file="${dir}/${file}.go" cat <${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 <${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