go-vise

Constrained Size Output Virtual Machine
Info | Log | Files | Refs | README | LICENSE

commit 825527b12ffd644eac5beaa173de47354f2333e8
parent 401e3a6979f79468aa9263195b691d3ffa258634
Author: lash <dev@holbrook.no>
Date:   Thu,  2 Jan 2025 09:50:10 +0000

Make newline insert optional

Diffstat:
Mdev/walk/main.go | 29++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)

diff --git a/dev/walk/main.go b/dev/walk/main.go @@ -25,16 +25,18 @@ type translator struct { langs []lang.Language ctx context.Context rs resource.Resource + newline bool d string w map[string]io.WriteCloser mw map[string]io.WriteCloser } -func newTranslator(ctx context.Context, rs resource.Resource, outPath string) *translator { +func newTranslator(ctx context.Context, rs resource.Resource, outPath string, newline bool) *translator { return &translator{ ctx: ctx, rs: rs, d: outPath, + newline: newline, w: make(map[string]io.WriteCloser), mw: make(map[string]io.WriteCloser), } @@ -114,6 +116,7 @@ msgstr "" return nil } +// TODO: DRY; merge with menuFunc func(tr *translator) nodeFunc(node *debug.Node) error { for k, w := range(tr.w) { var s string @@ -121,15 +124,21 @@ func(tr *translator) nodeFunc(node *debug.Node) error { ctx := context.WithValue(tr.ctx, "Language", ln) r, err := tr.rs.GetTemplate(ctx, node.Name) for i, v := range(strings.Split(r, "\n")) { - if i > 0 { - s += "\\n\"\n" - } else if len(s) > 0 { - s += "\"\n" + if tr.newline { + if i > 0 { + s += "\\n\"\n" + } else if len(s) > 0 { + s += "\"\n" + } + s += fmt.Sprintf("\t\"%s", v) + } else { + s += fmt.Sprintf("\t\"%s\"\n", v) } - s += fmt.Sprintf("\t\"%s", v) } - if len(s) > 0 { - s += "\"\n" + if tr.newline { + if len(s) > 0 { + s += "\"\n" + } } s = fmt.Sprintf(`msgid "" "%s" @@ -205,11 +214,13 @@ func main() { var dir string var outDir string var root string + var newline bool var langs langVar flag.StringVar(&dir, "d", ".", "resource dir to read from") flag.StringVar(&outDir, "o", "locale", "output directory") flag.StringVar(&root, "root", "root", "entry point symbol") + flag.BoolVar(&newline, "newline", false, "insert newlines in multiline strings") flag.Var(&langs, "l", "process for language") flag.Parse() @@ -231,7 +242,7 @@ func main() { rs := resource.NewDbResource(rsStore) - tr := newTranslator(ctx, rs, outDir) + tr := newTranslator(ctx, rs, outDir, newline) defer tr.Close() for _, ln := range(langs.Langs()) { logg.DebugCtxf(ctx, "lang", "lang", ln)