Skip to content

Commit c128cf7

Browse files
authored
Merge pull request #1252 from merico-dev/config-ht
Feat: Remove pluginDir Item in Config File
2 parents b2958c9 + 0792516 commit c128cf7

39 files changed

Lines changed: 747 additions & 1033 deletions

cmd/devstream/apply.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func applyCMDFunc(cmd *cobra.Command, args []string) {
3030

3131
func init() {
3232
applyCMD.Flags().StringVarP(&configFilePath, configFlagName, "f", "config.yaml", "config file")
33-
applyCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", "", "plugins directory")
33+
applyCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", defaultPluginDir, "plugins directory")
3434
applyCMD.Flags().BoolVarP(&continueDirectly, "yes", "y", false, "apply directly without confirmation")
3535

3636
completion.FlagFilenameCompletion(applyCMD, configFlagName)

cmd/devstream/common.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ var (
99
const (
1010
configFlagName = "config-file"
1111
pluginDirFlagName = "plugin-dir"
12+
defaultPluginDir = "~/.devstream/plugins"
1213
)

cmd/devstream/delete.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func deleteCMDFunc(cmd *cobra.Command, args []string) {
3333
func init() {
3434
deleteCMD.Flags().BoolVarP(&isForceDelete, "force", "", false, "force delete by config")
3535
deleteCMD.Flags().StringVarP(&configFilePath, configFlagName, "f", "config.yaml", "config file")
36-
deleteCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", "", "plugins directory")
36+
deleteCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", defaultPluginDir, "plugins directory")
3737
deleteCMD.Flags().BoolVarP(&continueDirectly, "yes", "y", false, "delete directly without confirmation")
3838

3939
completion.FlagFilenameCompletion(deleteCMD, configFlagName)

cmd/devstream/destroy.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func destroyCMDFunc(cmd *cobra.Command, args []string) {
3131
func init() {
3232
destroyCMD.Flags().BoolVarP(&isForceDestroy, "force", "", false, "force destroy by config")
3333
destroyCMD.Flags().StringVarP(&configFilePath, configFlagName, "f", "config.yaml", "config file")
34-
destroyCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", "", "plugins directory")
34+
destroyCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", defaultPluginDir, "plugins directory")
3535
destroyCMD.Flags().BoolVarP(&continueDirectly, "yes", "y", false, "destroy directly without confirmation")
3636

3737
completion.FlagFilenameCompletion(destroyCMD, configFlagName)

cmd/devstream/init.go

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@ import (
77
"strings"
88

99
"github.com/spf13/cobra"
10-
"github.com/spf13/viper"
1110

1211
"github.com/devstream-io/devstream/cmd/devstream/list"
1312
"github.com/devstream-io/devstream/internal/pkg/completion"
1413
"github.com/devstream-io/devstream/internal/pkg/configmanager"
15-
"github.com/devstream-io/devstream/internal/pkg/pluginengine"
1614
"github.com/devstream-io/devstream/internal/pkg/pluginmanager"
1715
"github.com/devstream-io/devstream/internal/pkg/version"
1816
"github.com/devstream-io/devstream/pkg/util/log"
@@ -39,46 +37,46 @@ func initCMDFunc(_ *cobra.Command, _ []string) {
3937
}
4038

4139
var (
42-
realPluginDir string
43-
tools []configmanager.Tool
44-
err error
40+
tools []configmanager.Tool
41+
err error
4542
)
4643

4744
if downloadOnly {
4845
// download plugins from flags
49-
tools, realPluginDir, err = GetPluginsAndPluginDirFromFlags()
46+
tools, err = GetPluginsFromFlags()
5047
} else {
5148
// download plugins according to the config file
52-
tools, realPluginDir, err = GetPluginsAndPluginDirFromConfig()
49+
tools, err = GetPluginsFromConfig()
5350
}
5451

5552
if err != nil {
5653
log.Fatal(err)
5754
}
5855

59-
if err := pluginmanager.DownloadPlugins(tools, realPluginDir, initOS, initArch); err != nil {
56+
pluginDir, err = pluginmanager.GetPluginDir()
57+
if err != nil {
58+
log.Fatal(err)
59+
}
60+
log.Debugf("Plugin directory: %s.", pluginDir)
61+
62+
if err = pluginmanager.DownloadPlugins(tools, pluginDir, initOS, initArch); err != nil {
6063
log.Fatal(err)
6164
}
6265

6366
fmt.Println()
6467
log.Success("Initialize finished.")
6568
}
6669

67-
func GetPluginsAndPluginDirFromConfig() (tools []configmanager.Tool, pluginDir string, err error) {
70+
func GetPluginsFromConfig() (tools []configmanager.Tool, err error) {
6871
cfg, err := configmanager.NewManager(configFilePath).LoadConfig()
6972
if err != nil {
70-
return nil, "", err
73+
return nil, err
7174
}
7275

73-
// combine plugin dir from config file and flag
74-
if err = pluginengine.SetPluginDir(cfg.PluginDir); err != nil {
75-
return nil, "", err
76-
}
77-
78-
return cfg.Tools, viper.GetString(pluginDirFlagName), nil
76+
return cfg.Tools, nil
7977
}
8078

81-
func GetPluginsAndPluginDirFromFlags() (tools []configmanager.Tool, pluginDir string, err error) {
79+
func GetPluginsFromFlags() (tools []configmanager.Tool, err error) {
8280
// 1. get plugins from flags
8381
var pluginsName []string
8482
if downloadAll {
@@ -94,18 +92,18 @@ func GetPluginsAndPluginDirFromFlags() (tools []configmanager.Tool, pluginDir st
9492
// check if plugins to download are supported by dtm
9593
for _, plugin := range pluginsName {
9694
if _, ok := list.PluginNamesMap()[plugin]; !ok {
97-
return nil, "", fmt.Errorf("Plugin %s is not supported by dtm", plugin)
95+
return nil, fmt.Errorf("Plugin %s is not supported by dtm", plugin)
9896
}
9997
}
10098
}
10199

102100
if len(pluginsName) == 0 {
103-
return nil, "", errors.New("Please use --plugins to specify plugins to download or use --all to download all plugins.")
101+
return nil, errors.New("Please use --plugins to specify plugins to download or use --all to download all plugins.")
104102
}
105103
log.Debugf("plugins to download: %v", pluginsName)
106104

107105
if initOS == "" || initArch == "" {
108-
return nil, "", fmt.Errorf("Once you use the --all flag, you must specify the --os and --arch flags")
106+
return nil, fmt.Errorf("Once you use the --all flag, you must specify the --os and --arch flags")
109107
}
110108

111109
log.Infof("Plugins to download: %v", pluginsName)
@@ -115,18 +113,13 @@ func GetPluginsAndPluginDirFromFlags() (tools []configmanager.Tool, pluginDir st
115113
tools = append(tools, configmanager.Tool{Name: pluginName})
116114
}
117115

118-
// 2. handle plugin dir
119-
if err = pluginengine.SetPluginDir(""); err != nil {
120-
return nil, "", err
121-
}
122-
123-
return tools, viper.GetString(pluginDirFlagName), nil
116+
return tools, nil
124117
}
125118

126119
func init() {
127120
// flags for init from config file
128121
initCMD.Flags().StringVarP(&configFilePath, configFlagName, "f", "config.yaml", "config file")
129-
initCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", "", "plugins directory")
122+
initCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", defaultPluginDir, "plugins directory")
130123

131124
// downloading specific plugins from flags
132125
initCMD.Flags().BoolVar(&downloadOnly, "download-only", false, "download plugins only")

cmd/devstream/show.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func init() {
6767
showStatusCMD.Flags().StringVarP(&plugin, "plugin", "p", "", "specify name with the plugin")
6868
showStatusCMD.Flags().StringVarP(&instanceID, "id", "i", "", "specify id with the plugin instance")
6969
showStatusCMD.Flags().BoolVarP(&statusAllFlag, "all", "a", false, "show all instances of all plugins status")
70-
showStatusCMD.Flags().StringVarP(&pluginDir, "plugin-dir", "d", "", "plugins directory")
70+
showStatusCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", defaultPluginDir, "plugins directory")
7171
showStatusCMD.Flags().StringVarP(&configFilePath, "config-file", "f", "config.yaml", "config file")
7272
completion.FlagPluginsCompletion(showStatusCMD, "plugin")
7373
}

cmd/devstream/verify.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func verifyCMDFunc(cmd *cobra.Command, args []string) {
2626

2727
func init() {
2828
verifyCMD.Flags().StringVarP(&configFilePath, configFlagName, "f", "config.yaml", "config file")
29-
verifyCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", "", "plugins directory")
29+
verifyCMD.Flags().StringVarP(&pluginDir, pluginDirFlagName, "d", defaultPluginDir, "plugins directory")
3030

3131
completion.FlagFilenameCompletion(verifyCMD, configFlagName)
3232
completion.FlagDirnameCompletion(verifyCMD, pluginDirFlagName)

docs/best-practices/air-gapped-deployment.zh.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,6 @@ harbor-1.10.0.tgz jenkins-4.2.5.tgz
290290
```yaml title="local Backend"
291291
varFile: "" # If not empty, use the specified external variables config file
292292
toolFile: "" # If not empty, use the specified external tools config file
293-
pluginDir: "./plugins" # If empty, use the default value: ~/.devstream/plugins, or use -d flag to specify a directory
294293
state: # state config, backend can be local, s3 or k8s
295294
backend: local
296295
options:
@@ -302,7 +301,6 @@ harbor-1.10.0.tgz jenkins-4.2.5.tgz
302301
```yaml title="k8s Backend"
303302
varFile: "" # If not empty, use the specified external variables config file
304303
toolFile: "" # If not empty, use the specified external tools config file
305-
pluginDir: "./plugins" # If empty, use the default value: ~/.devstream/plugins, or use -d flag to specify a directory
306304
state: # state config, backend can be local, s3 or k8s
307305
backend: k8s
308306
options:
@@ -330,7 +328,6 @@ harborURL: harbor.example.com
330328
# core config
331329
varFile: "" # If not empty, use the specified external variables config file
332330
toolFile: "" # If not empty, use the specified external tools config file
333-
pluginDir: "./plugins" # If empty, use the default value: ~/.devstream/plugins, or use -d flag to specify a directory
334331
state: # state config, backend can be local, s3 or k8s
335332
backend: k8s
336333
options:

0 commit comments

Comments
 (0)