You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2021/03/18 10:21:10 UTC
[cloudstack-cloudmonkey] branch master updated: Added new option to
change default cmk config file. (#70)
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack-cloudmonkey.git
The following commit(s) were added to refs/heads/master by this push:
new b772504 Added new option to change default cmk config file. (#70)
b772504 is described below
commit b77250473f4c3e19dfb00c4aea94fad5c205b29b
Author: Sina Kashipazha <so...@users.noreply.github.com>
AuthorDate: Thu Mar 18 11:21:02 2021 +0100
Added new option to change default cmk config file. (#70)
Cloudmonkey command lets us use a different config file rather than the default one. This pull request added the same functionality to the cmk command.
cmk -c ./my-config
---
cmd/command.go | 1 +
cmk.go | 3 ++-
config/config.go | 10 +++++++++-
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/cmd/command.go b/cmd/command.go
index ab8106c..15d8714 100644
--- a/cmd/command.go
+++ b/cmd/command.go
@@ -68,6 +68,7 @@ Allowed flags:
-o API response output format: json, text, table, column, csv
-p Server profile
-d Enable debug mode
+ -c different config file path
Default commands:
%s
diff --git a/cmk.go b/cmk.go
index 4f70cb5..eb94999 100644
--- a/cmk.go
+++ b/cmk.go
@@ -45,10 +45,11 @@ func main() {
showVersion := flag.Bool("v", false, "show version")
debug := flag.Bool("d", false, "enable debug mode")
profile := flag.String("p", "", "server profile")
+ configFilePath := flag.String("c", "", "config file path")
flag.Parse()
- cfg := config.NewConfig()
+ cfg := config.NewConfig(configFilePath)
if *showVersion {
fmt.Printf("%s %s (build: %s, %s)\n", cfg.Name(), cfg.Version(), GitSHA, BuildDate)
diff --git a/config/config.go b/config/config.go
index 664d99b..592438a 100644
--- a/config/config.go
+++ b/config/config.go
@@ -24,6 +24,7 @@ import (
"net/http/cookiejar"
"os"
"path"
+ "path/filepath"
"strconv"
"time"
@@ -324,10 +325,17 @@ func (c *Config) UpdateConfig(key string, value string, update bool) {
}
// NewConfig creates or reload config and loads API cache
-func NewConfig() *Config {
+func NewConfig(configFilePath *string) *Config {
defaultConf := defaultConfig()
defaultConf.Core = nil
defaultConf.ActiveProfile = nil
+ if *configFilePath != "" {
+ defaultConf.ConfigFile, _ = filepath.Abs(*configFilePath)
+ if _, err := os.Stat(defaultConf.ConfigFile); os.IsNotExist(err) {
+ fmt.Println("Config file doesn't exist.")
+ os.Exit(1)
+ }
+ }
cfg := reloadConfig(defaultConf)
LoadCache(cfg)
return cfg