mfer/src/mfer.go

71 lines
1.4 KiB
Go

package mfer
import (
"fmt"
"log"
"os"
"path/filepath"
"github.com/pterm/pterm"
"github.com/urfave/cli/v2"
)
func printBanner(Appname, Version, Buildarch string) {
s, _ := pterm.DefaultBigText.WithLetters(pterm.NewLettersFromString(Appname)).Srender()
pterm.DefaultCenter.Println(s) // Print BigLetters with the default CenterPrinter
}
func Run(Appname, Version, Buildarch string) int {
printBanner(Appname, Version, Buildarch)
app := &cli.App{
Name: Appname,
Usage: "Manifest generator",
Commands: []*cli.Command{
{
Name: "generate",
Aliases: []string{"gen"},
Usage: "Generate manifest file",
Action: func(c *cli.Context) error {
return generateManifest(".", "./index.mf")
},
Flags: []cli.Flag{
&cli.StringFlag{
Name: "input",
Value: ".",
Aliases: []string{"i"},
Usage: "Specify input directory.",
},
&cli.StringFlag{
Name: "output",
Value: "./index.mf",
Aliases: []string{"o"},
Usage: "Specify output filename",
},
},
},
},
}
err := app.Run(os.Args)
if err != nil {
log.Fatal(err)
return 1
}
return 0
}
func generateManifest(path, outputFilename string) error {
fmt.Println("generateManifest()")
walkErr := filepath.Walk(path, func(itemPath string, info os.FileInfo, err error) error {
fmt.Println(itemPath)
return nil
})
if walkErr != nil {
log.Fatal(walkErr)
return walkErr
}
return nil
}