translate/cmd/translate/gen-id.go

46 lines
850 B
Go
Raw Permalink Normal View History

2023-01-13 01:57:07 +00:00
package main
import (
"hash/crc32"
2023-01-13 01:57:07 +00:00
"os"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v2"
2023-04-21 02:59:26 +00:00
"go.elara.ws/logger/log"
"go.elara.ws/translate"
2023-01-13 01:57:07 +00:00
)
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))
2023-01-13 01:57:07 +00:00
}
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
}