Skip to content

Commit

Permalink
docs generation: write package doc as README.md if there are sub-pack…
Browse files Browse the repository at this point in the history
…ages

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
  • Loading branch information
aluzzardi committed Jun 10, 2021
1 parent ee8bcfa commit 12b712b
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 14 deletions.
48 changes: 34 additions & 14 deletions cmd/dagger/cmd/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,8 @@ func walkStdlib(ctx context.Context, output, format string) {
lg := log.Ctx(ctx)

lg.Info().Str("output", output).Msg("generating stdlib")

packages := map[string]*Package{}
err := fs.WalkDir(stdlib.FS, ".", func(p string, d fs.DirEntry, err error) error {
if err != nil {
return err
Expand All @@ -325,13 +327,6 @@ func walkStdlib(ctx context.Context, output, format string) {
return nil
}

filename := fmt.Sprintf("%s.%s", p, format)
filepath := path.Join(output, filename)

if err := os.MkdirAll(path.Dir(filepath), 0755); err != nil {
return err
}

pkgName := fmt.Sprintf("dagger.io/%s", p)
lg.Info().Str("package", pkgName).Str("format", format).Msg("generating doc")
val, err := loadCode(pkgName)
Expand All @@ -343,18 +338,43 @@ func walkStdlib(ctx context.Context, output, format string) {
return err
}

f, err := os.Create(filepath)
if err != nil {
return err
}
defer f.Close()

pkg := Parse(ctx, pkgName, val)
fmt.Fprintf(f, "%s", pkg.Format(format))
packages[p] = pkg
return nil
})

if err != nil {
lg.Fatal().Err(err).Msg("cannot generate stdlib doc")
}

hasSubPackages := func(name string) bool {
for p := range packages {
if strings.HasPrefix(p, name+"/") {
return true
}
}
return false
}

for p, pkg := range packages {
filename := fmt.Sprintf("%s.%s", p, format)
// If this package has sub-packages (e.g. `aws`), create
// `aws/README.md` instead of `aws.md`.
if hasSubPackages(p) {
filename = fmt.Sprintf("%s/README.%s", p, format)
}
filepath := path.Join(output, filename)

if err := os.MkdirAll(path.Dir(filepath), 0755); err != nil {
lg.Fatal().Err(err).Msg("cannot create directory")
}

f, err := os.Create(filepath)
if err != nil {
lg.Fatal().Err(err).Msg("cannot create file")
}
defer f.Close()

fmt.Fprintf(f, "%s", pkg.Format(format))
}
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 12b712b

Please sign in to comment.