translate/cmd/translate/gen-id.go

46 lines
850 B
Go

package main
import (
"hash/crc32"
"os"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v2"
"go.elara.ws/logger/log"
"go.elara.ws/translate"
)
func genIDCmd(c *cli.Context) error {
if c.NArg() < 1 {
log.Fatal("This command requires one or more arguments").Send()
}
fl, err := os.Open(c.Args().First())
if err != nil {
log.Fatal("Error opening file").Err(err).Send()
}
var tr translate.Translations
err = toml.NewDecoder(fl).Decode(&tr)
if err != nil {
return err
}
fl.Close()
for i, item := range tr.Items {
tr.Items[i].ID = crc32.ChecksumIEEE([]byte(item.Value))
}
fl, err = os.Create(c.Args().First())
if err != nil {
log.Fatal("Error creating file").Err(err).Send()
}
err = toml.NewEncoder(fl).Encode(tr)
if err != nil {
log.Fatal("Error writing toml to file").Err(err).Send()
}
return nil
}