mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
073a2a8599
* generator: Don't swallow output from go fmt * fix formatting Co-authored-by: Oliver Nocon <33484802+OliverNocon@users.noreply.github.com>
80 lines
1.9 KiB
Go
80 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"flag"
|
|
"fmt"
|
|
"io"
|
|
"io/ioutil"
|
|
"os"
|
|
"os/exec"
|
|
|
|
"github.com/SAP/jenkins-library/pkg/generator/helper"
|
|
)
|
|
|
|
func main() {
|
|
var metadataPath string
|
|
var targetDir string
|
|
|
|
flag.StringVar(&metadataPath, "metadataDir", "./resources/metadata", "The directory containing the step metadata. Default points to \\'resources/metadata\\'.")
|
|
flag.StringVar(&targetDir, "targetDir", "./cmd", "The target directory for the generated commands.")
|
|
flag.Parse()
|
|
|
|
fmt.Printf("metadataDir: %v\n, targetDir: %v\n", metadataPath, targetDir)
|
|
|
|
metadataFiles, err := helper.MetadataFiles(metadataPath)
|
|
checkError(err)
|
|
err = helper.ProcessMetaFiles(metadataFiles, targetDir, helper.StepHelperData{
|
|
OpenFile: openMetaFile,
|
|
WriteFile: fileWriter,
|
|
ExportPrefix: "",
|
|
})
|
|
checkError(err)
|
|
|
|
fmt.Printf("Running go fmt %v\n", targetDir)
|
|
cmd := exec.Command("go", "fmt", targetDir)
|
|
r, _ := cmd.StdoutPipe()
|
|
cmd.Stderr = cmd.Stdout
|
|
done := make(chan struct{})
|
|
scanner := bufio.NewScanner(r)
|
|
go func() {
|
|
for scanner.Scan() {
|
|
fmt.Println(scanner.Text())
|
|
}
|
|
done <- struct{}{}
|
|
|
|
}()
|
|
err = cmd.Run()
|
|
checkError(err)
|
|
|
|
}
|
|
func openMetaFile(name string) (io.ReadCloser, error) {
|
|
return os.Open(name)
|
|
}
|
|
|
|
func fileWriter(filename string, data []byte, perm os.FileMode) error {
|
|
return ioutil.WriteFile(filename, data, perm)
|
|
}
|
|
|
|
func checkError(err error) {
|
|
if err != nil {
|
|
fmt.Printf("Error occurred: %v\n", err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func openDocTemplate(docTemplateFilePath string) (io.ReadCloser, error) {
|
|
|
|
//check if template exists otherwise print No Template found
|
|
if _, err := os.Stat(docTemplateFilePath); os.IsNotExist(err) {
|
|
err := fmt.Errorf("no template found: %v", docTemplateFilePath)
|
|
return nil, err
|
|
}
|
|
|
|
return os.Open(docTemplateFilePath)
|
|
}
|
|
|
|
func docFileWriter(filename string, data []byte, perm os.FileMode) error {
|
|
return ioutil.WriteFile(filename, data, perm)
|
|
}
|