tmpl/cmd/test.go

47 lines
1004 B
Go

package cmd
import (
"os"
"path/filepath"
"github.com/rs/zerolog/log"
"github.com/urfave/cli/v2"
)
var Test = &cli.Command{
Name: "test",
Usage: "Test if a directory is a valid template",
Description: "Test whether a directory is valid for use with tmpl",
ArgsUsage: "[path (default: \".\")]",
Action: runTest,
}
func runTest(ctx *cli.Context) error {
testPath := "."
if ctx.NArg() > 0 {
testPath = ctx.Args().First()
}
var errs []string
if _, err := os.Lstat(filepath.Join(testPath, "template.toml")); err != nil {
errs = append(errs, "could not find template.toml")
}
fi, err := os.Lstat(filepath.Join(testPath, "template"))
if err != nil {
errs = append(errs, "no template directory found")
}
if err == nil && !fi.IsDir() {
errs = append(errs, "template path is a file, not a directory")
}
if len(errs) > 0 {
for _, err := range errs {
log.Error().Msg(err)
}
return nil
}
log.Info().Msg("this is a valid tmpl template")
return nil
}