Skip to content

Commit f464193

Browse files
committed
fix(helm): fix helm install: if a directory with the same name already exists in the current directory
fix helm install: if a directory with the same name already exists in the current directory Signed-off-by: ysicing <[email protected]>
1 parent ae234bb commit f464193

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

internal/pkg/util/exec/exec.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ func (lw *LogWriter) Write(p []byte) (n int, err error) {
4040
func RunCmd(name string, arg ...string) error {
4141
log := log.GetInstance()
4242
cmd := sysexec.Command(name, arg[:]...) // #nosec
43+
// cmd.Dir = common.GetDefaultCacheDir()
4344
cmd.Stdin = os.Stdin
4445
cmd.Stderr = NewLogWrite(log, "err")
4546
cmd.Stdout = NewLogWrite(log, "")
@@ -56,6 +57,7 @@ func Trace(cmd *sysexec.Cmd) {
5657

5758
func Command(name string, arg ...string) *sysexec.Cmd {
5859
cmd := sysexec.Command(name, arg...) // #nosec
60+
// cmd.Dir = common.GetDefaultCacheDir()
5961
Trace(cmd)
6062
return cmd
6163
}
@@ -66,11 +68,13 @@ func CommandRun(name string, arg ...string) error {
6668
cmd.Stdout = os.Stdout
6769
cmd.Stderr = os.Stderr
6870
cmd.Stdin = os.Stdin
71+
// cmd.Dir = common.GetDefaultCacheDir()
6972
return cmd.Run()
7073
}
7174

7275
func CommandBashRunWithResp(cmdStr string) (string, error) {
7376
cmd := sysexec.Command("/bin/bash", "-c", cmdStr) // #nosec
77+
// cmd.Dir = common.GetDefaultCacheDir()
7478
Trace(cmd)
7579
result, err := cmd.CombinedOutput()
7680
return string(result), err

internal/pkg/util/helm/helm.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package helm
99
import (
1010
"context"
1111
"fmt"
12+
"github.com/ergoapi/util/ztime"
1213
"os"
1314
"path/filepath"
1415
"strings"
@@ -58,6 +59,7 @@ func NewClient(config *Config) (*Client, error) {
5859
if !file.CheckFileExists(common.GetDefaultKubeConfig()) {
5960
settings.KubeConfig = common.GetDefaultNewKubeConfig()
6061
}
62+
settings.RepositoryCache = common.GetDefaultCacheDir()
6163
client.settings = settings
6264
actionConfig := &action.Configuration{}
6365
if err := actionConfig.Init(settings.RESTClientGetter(), config.Namespace, helmDriver, nolog); err != nil {
@@ -135,10 +137,15 @@ func (c Client) Upgrade(name, repoName, chartName, chartVersion string, values m
135137
if len(chartVersion) > 0 {
136138
client.ChartPathOptions.Version = chartVersion
137139
}
140+
// TODO 会加载本地的同名chart文件夹,需要优化
141+
if _, err := os.Stat(chartName); err == nil {
142+
os.Rename(chartName, chartName+"-bak."+ztime.NowUTC().Format("20060102150405"))
143+
}
138144
p, err := client.ChartPathOptions.LocateChart(chartName, c.settings)
139145
if err != nil {
140146
return nil, errors.Wrap(err, fmt.Sprintf("locate chart %s failed: %v", chartName, err))
141147
}
148+
c.log.Infof("chart name %s path: %s", chartName, p)
142149
ct, err := loader.Load(p)
143150
if err != nil {
144151
return nil, errors.Wrap(err, fmt.Sprintf("load chart %s failed: %v", chartName, err))

0 commit comments

Comments
 (0)