appmanager: fix tar support, auto-create namespace
diff --git a/appmanager/helm.go b/appmanager/helm.go
index 5fd7e8e..7882822 100644
--- a/appmanager/helm.go
+++ b/appmanager/helm.go
@@ -9,6 +9,7 @@
"path"
"path/filepath"
"strings"
+ "syscall"
"github.com/golang/glog"
"gopkg.in/yaml.v2"
@@ -47,12 +48,21 @@
}
dir := filepath.Dir(chartTar)
archive := filepath.Base(chartTar)
- extractDir := strings.TrimSuffix(archive, ".tar.gz")
- cmd := exec.Command(fmt.Sprintf("cd %s && rm -rf %s && tar -ztvf %s -C %s", dir, extractDir, archive, extractDir))
- if err := cmd.Run(); err != nil {
+ if err := syscall.Chdir(dir); err != nil {
return nil, err
}
- return HelmChartFromDir(dir + "/" + extractDir)
+ cmd := exec.Command("tar", "-xvf", archive)
+ var stdout strings.Builder
+ var stderr strings.Builder
+ cmd.Stdout = &stdout
+ cmd.Stderr = &stderr
+ if err := cmd.Run(); err != nil {
+ glog.Info("-----")
+ return nil, errors.New(stderr.String())
+ }
+ glog.Info(stdout.String())
+ glog.Info(dir)
+ return HelmChartFromDir(dir)
}
func (h *HelmChart) Install(