Allow dynamically generating configuration by running an arbitrary program using the new geninclude directive

This commit is contained in:
Kovid Goyal
2025-01-06 19:00:01 +05:30
parent 6d90813a48
commit 1eeea70c7a
6 changed files with 371 additions and 169 deletions

View File

@@ -24,6 +24,10 @@ func TestConfigParsing(t *testing.T) {
t.Fatal(err)
}
}
w(filepath.Join(tdir, "g.py"), []byte(`
print('gpy 1')
print('gpy 2')
`))
w(conf_file, []byte(
`error main
# igno
@@ -39,6 +43,7 @@ globin
\clude sub/c?.c
\onf
badline
geninclude g.py
`))
w(filepath.Join(tdir, "sub/b.conf"), []byte("incb cool\ninclude a.conf"))
w(filepath.Join(tdir, "sub/c1.conf"), []byte("inc1 cool"))
@@ -62,7 +67,7 @@ badline
if err = p.ParseOverrides("over one", "over two"); err != nil {
t.Fatal(err)
}
diff := cmp.Diff([]string{"a one", "incb cool", "b x", "inc1 cool", "inc2 cool", "env cool", "inc notcool", "over one", "over two"}, parsed_lines)
diff := cmp.Diff([]string{"a one", "incb cool", "b x", "inc1 cool", "inc2 cool", "env cool", "inc notcool", "gpy 1", "gpy 2", "over one", "over two"}, parsed_lines)
if diff != "" {
t.Fatalf("Unexpected parsed config values:\n%s", diff)
}