cat / 012
clone

a spreadsheet for the terminal: lotus 1-2-3 looks, google sheets keys and formulas, one go binary

doccheck: doc paths in the Makefile, scripts and deploy configs too; roadmap row for compact derived cells

Dami committed 2d53d2d
commit
2d53d2dee28ed51bb050118f152869e68c74d671
parent
e30aba537f587a620f51c4e0baedc185668db0fe
author
Dami <dami.etoile@gmail.com>
2 files changed, +30 -16
MROADMAP.md1+
Mscripts/doccheck/tree.go45+++++++++++++++++++-----------
M ROADMAP.md +1 -0
M scripts/doccheck/tree.go +29 -16
@@ -154,28 +154,41 @@ func checkFrontMatter(docs map[string]*doc) []string {
154154 155155 var goDocPath = regexp.MustCompile(`\bdocs/[a-z0-9_/-]+\.md\b`)156156 157-// checkGoPaths reports doc paths named in Go code, in messages and158-// comments, that don't exist.157+// checkGoPaths reports doc paths named outside the docs, in Go code158+// (messages and comments), the Makefile, scripts and deploy configs,159+// that don't exist.159160 func checkGoPaths() []string {160161 var out []string161- for _, root := range []string{"cmd", "internal", "e2e", "oracle", "demos", "scripts"} {162+ for _, f := range []string{"Makefile", "CLAUDE.md"} {163+ out = append(out, missingDocPaths(f)...)164+ }165+ for _, root := range []string{"cmd", "internal", "e2e", "oracle", "demos", "scripts", "deploy"} {162166 filepath.WalkDir(root, func(p string, d fs.DirEntry, err error) error {163- if err != nil || d.IsDir() || filepath.Ext(p) != ".go" {164- return nil165- }166- data, err := os.ReadFile(p)167- if err != nil {168- return nil169- }170- for i, l := range strings.Split(string(data), "\n") {171- for _, m := range goDocPath.FindAllString(l, -1) {172- if _, err := os.Stat(filepath.FromSlash(m)); err != nil {173- out = append(out, fmt.Sprintf("%s:%d: %s: no such doc", p, i+1, m))174- }175- }167+ if err == nil && !d.IsDir() && pathBearing[filepath.Ext(p)] {168+ out = append(out, missingDocPaths(p)...)176169 }177170 return nil178171 })179172 }180173 return out181174 }175+176+// pathBearing are the kinds of file outside docs/ that name doc pages.177+var pathBearing = map[string]bool{".go": true, ".sh": true, ".yml": true, ".yaml": true, ".tape": true, ".sql": true, ".json": true}178+179+// missingDocPaths reports the doc paths file p names that don't exist.180+func missingDocPaths(p string) []string {181+ data, err := os.ReadFile(p)182+ if err != nil {183+ return nil184+ }185+ var out []string186+ for i, l := range strings.Split(string(data), "\n") {187+ for _, m := range goDocPath.FindAllString(l, -1) {188+ if _, err := os.Stat(filepath.FromSlash(m)); err != nil {189+ out = append(out, fmt.Sprintf("%s:%d: %s: no such doc", p, i+1, m))190+ }191+ }192+ }193+ return out194+}