Allow --chart and --out to be specified together

This commit is contained in:
Janet Kuo
2016-07-25 16:47:40 -07:00
parent 569b47f3cd
commit e41629ba49
2 changed files with 61 additions and 56 deletions
+47 -38
View File
@@ -32,7 +32,7 @@ import (
/**
* Generate Helm Chart configuration
*/
func generateHelm(filename string, svcnames []string, generateYaml, createD, createDS, createRS, createRC bool) error {
func generateHelm(filename string, svcnames []string, generateYaml, createD, createDS, createRS, createRC bool, outFile string) error {
type ChartDetails struct {
Name string
}
@@ -90,42 +90,47 @@ home:
}
/* Copy all related json/yaml files into the newly created manifests directory */
// TODO: support copying the file specified by --out?
for _, svcname := range svcnames {
extension := ".json"
if generateYaml {
extension = ".yaml"
}
if createD {
if err = cpToChart(manifestDir, svcname, "deployment", extension); err != nil {
return err
}
}
if createDS {
if err = cpToChart(manifestDir, svcname, "daemonset", extension); err != nil {
return err
}
}
if createRC {
if err = cpToChart(manifestDir, svcname, "rc", extension); err != nil {
return err
}
}
if createRS {
if err = cpToChart(manifestDir, svcname, "replicaset", extension); err != nil {
return err
}
}
/* The svc file is optional */
infile, err := ioutil.ReadFile(svcname + "-svc" + extension)
if err != nil {
continue
}
err = ioutil.WriteFile(manifestDir+string(os.PathSeparator)+svcname+"-svc"+extension, infile, 0644)
if err != nil {
if len(outFile) > 0 {
if err = cpFileToChart(manifestDir, outFile); err != nil {
return err
}
} else {
for _, svcname := range svcnames {
extension := ".json"
if generateYaml {
extension = ".yaml"
}
if createD {
if err = cpToChart(manifestDir, svcname, "deployment", extension); err != nil {
return err
}
}
if createDS {
if err = cpToChart(manifestDir, svcname, "daemonset", extension); err != nil {
return err
}
}
if createRC {
if err = cpToChart(manifestDir, svcname, "rc", extension); err != nil {
return err
}
}
if createRS {
if err = cpToChart(manifestDir, svcname, "replicaset", extension); err != nil {
return err
}
}
/* The svc file is optional */
infile, err := ioutil.ReadFile(svcname + "-svc" + extension)
if err != nil {
continue
}
err = ioutil.WriteFile(manifestDir+string(os.PathSeparator)+svcname+"-svc"+extension, infile, 0644)
if err != nil {
return err
}
}
}
fmt.Fprintf(os.Stdout, "chart created in %q\n", "."+string(os.PathSeparator)+dirName+string(os.PathSeparator))
@@ -133,11 +138,15 @@ home:
}
func cpToChart(manifestDir, svcname, trailing, extension string) error {
infile, err := ioutil.ReadFile(svcname + "-" + trailing + extension)
return cpFileToChart(manifestDir, svcname+"-"+trailing+extension)
}
func cpFileToChart(manifestDir, filename string) error {
infile, err := ioutil.ReadFile(filename)
if err != nil {
logrus.Infof("Error reading %s: %s\n", svcname+"-"+trailing+extension, err)
logrus.Infof("Error reading %s: %s\n", filename, err)
return err
}
return ioutil.WriteFile(manifestDir+string(os.PathSeparator)+svcname+"-"+trailing+extension, infile, 0644)
return ioutil.WriteFile(manifestDir+string(os.PathSeparator)+filename, infile, 0644)
}