Merge pull request #1403 from urfave/gfmrun-current

Run docs tests against current work tree
This commit is contained in:
Dan Buch 2022-05-23 07:50:02 -04:00 committed by GitHub
commit 595cabc60c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 4 deletions

View File

@ -363,7 +363,7 @@ For example this:
<!-- { <!-- {
"args": ["&#45;&#45;help"], "args": ["&#45;&#45;help"],
"output": "add a task to the list\n.*complete a task on the list\n.*\n\n.*\n.*Load configuration from FILE\n.*Language for the greeting.*" "output": ".*Load configuration from FILE\n.*\n.*Language for the greeting.*"
} --> } -->
``` go ``` go
package main package main

View File

@ -179,8 +179,43 @@ func testCleanup(packages []string) error {
return os.WriteFile("coverage.txt", out.Bytes(), 0644) return os.WriteFile("coverage.txt", out.Bytes(), 0644)
} }
func GfmrunActionFunc(c *cli.Context) error { func GfmrunActionFunc(cCtx *cli.Context) error {
filename := c.Args().Get(0) top := cCtx.Path("top")
bash, err := exec.LookPath("bash")
if err != nil {
return err
}
os.Setenv("SHELL", bash)
tmpDir, err := os.MkdirTemp("", "urfave-cli*")
if err != nil {
return err
}
wd, err := os.Getwd()
if err != nil {
return err
}
if err := os.Chdir(tmpDir); err != nil {
return err
}
fmt.Fprintf(cCtx.App.ErrWriter, "# ---> workspace/TMPDIR is %q\n", tmpDir)
if err := runCmd("go", "work", "init", top); err != nil {
return err
}
os.Setenv("TMPDIR", tmpDir)
if err := os.Chdir(wd); err != nil {
return err
}
filename := cCtx.Args().Get(0)
if filename == "" { if filename == "" {
filename = "README.md" filename = "README.md"
} }
@ -209,7 +244,11 @@ func GfmrunActionFunc(c *cli.Context) error {
return err return err
} }
return runCmd("gfmrun", "-c", fmt.Sprint(counter), "-s", filename) if err := runCmd("gfmrun", "-c", fmt.Sprint(counter), "-s", filename); err != nil {
return err
}
return os.RemoveAll(tmpDir)
} }
// checkBinarySizeActionFunc checks the size of an example binary to ensure that we are keeping size down // checkBinarySizeActionFunc checks the size of an example binary to ensure that we are keeping size down