From 23859109d5a4de8a012505c30c912a291b73b263 Mon Sep 17 00:00:00 2001 From: Mike Christof Date: Mon, 7 Dec 2020 16:22:16 +0000 Subject: [PATCH] handle multiple files and no files --- cmd/root.go | 48 +++++++++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index f0b3597..d9defb3 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -15,31 +15,45 @@ var version = "devel" var rootCmd = &cobra.Command{ Use: "githubactions-docs", Short: "Generate documentation for Github Actions similar to terraform-docs", + Args: cobra.ArbitraryArgs, Version: version, - Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { Verbose(cmd) + var files []string - if _, err := os.Stat(args[0]); os.IsNotExist(err) { - panic(fmt.Sprintf("Error, file %s does not exist", args[0])) - } + files = append(files, args...) - data, err := ioutil.ReadFile(args[0]) - if err != nil { - log.WithFields(log.Fields{ - "err": err, - "args[0]": args[0], - }).Error("Could not load file") + if len(args) == 0 { + files = append(files, "action.yml") } - cfg, err := action.Load(data) - if err != nil { - log.WithFields(log.Fields{ - "err": err, - }).Error("Could not decode action file") - } + for _, file := range files { + if _, err := os.Stat(file); os.IsNotExist(err) { + log.WithFields(log.Fields{ + "file": file, + }).Error("File not found") + continue + } + + data, err := ioutil.ReadFile(file) + if err != nil { + log.WithFields(log.Fields{ + "err": err, + "file": file, + }).Error("Could not load file") + continue + } - fmt.Println(cfg.Markdown()) + cfg, err := action.Load(data) + if err != nil { + log.WithFields(log.Fields{ + "err": err, + }).Error("Could not decode action file") + continue + } + + fmt.Println(cfg.Markdown()) + } }, }