From 5a5249b01eda7f35f0adc022da90b4ec74829245 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 11 Oct 2019 12:10:07 -0400 Subject: [PATCH] Fixed #5 --- internal/cmd/args.go | 6 +++--- internal/cmd/login.go | 4 ++-- internal/cmd/logout.go | 6 +++--- internal/cmd/node.go | 12 ++++++------ internal/cmd/root.go | 8 ++++---- internal/config/auth.go | 6 +++--- internal/config/configuration.go | 14 +++++++------- 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/internal/cmd/args.go b/internal/cmd/args.go index e5b303c..6399b6a 100644 --- a/internal/cmd/args.go +++ b/internal/cmd/args.go @@ -28,11 +28,11 @@ var argsCmd = &cobra.Command{ Aliases: []string{"arguments"}, Short: "View arguments", Run: func(cmd *cobra.Command, args []string) { - config.Initialize() + user := config.Initialize() - config.CheckLogin(nodeName, "", "") + user.CheckLogin(nodeName, "", "") - node, err := config.User.GetNode(nodeName) + node, err := user.GetNode(nodeName) if err != nil { logger.Error(err) } diff --git a/internal/cmd/login.go b/internal/cmd/login.go index ce426b4..f028b10 100644 --- a/internal/cmd/login.go +++ b/internal/cmd/login.go @@ -28,9 +28,9 @@ var loginCmd = &cobra.Command{ Use: "login [--node default]", Short: "Login with a node", Run: func(cmd *cobra.Command, args []string) { - config.Initialize() + user := config.Initialize() - if config.CheckLogin(nodeName, username, password) != nil { + if user.CheckLogin(nodeName, username, password) != nil { logger.Info("Logged in") } }, diff --git a/internal/cmd/logout.go b/internal/cmd/logout.go index 8b38bbc..398a484 100644 --- a/internal/cmd/logout.go +++ b/internal/cmd/logout.go @@ -25,15 +25,15 @@ var logoutCmd = &cobra.Command{ Use: "logout [--node default]", Short: "Logout of a node", Run: func(cmd *cobra.Command, args []string) { - config.Initialize() + user := config.Initialize() - node, err := config.User.GetNode(nodeName) + node, err := user.GetNode(nodeName) if err != nil { logger.Error(err) } node.Token = "" - config.User.UpdateNode(nodeName, *node) + user.UpdateNode(nodeName, *node) logger.Info("Logged out") }, diff --git a/internal/cmd/node.go b/internal/cmd/node.go index a85172b..848d4c9 100644 --- a/internal/cmd/node.go +++ b/internal/cmd/node.go @@ -27,9 +27,9 @@ var nodeCmd = &cobra.Command{ Use: "node", Short: "Manage processing nodes", Run: func(cmd *cobra.Command, args []string) { - config.Initialize() + user := config.Initialize() - for k, n := range config.User.Nodes { + for k, n := range user.Nodes { if logger.VerboseFlag { logger.Info(k + " - " + n.String()) } else { @@ -44,9 +44,9 @@ var addCmd = &cobra.Command{ Short: "Add a new processing node", Args: cobra.ExactValidArgs(2), Run: func(cmd *cobra.Command, args []string) { - config.Initialize() + user := config.Initialize() - if err := config.User.AddNode(args[0], args[1]); err != nil { + if err := user.AddNode(args[0], args[1]); err != nil { logger.Error(err) } }, @@ -58,9 +58,9 @@ var removeCmd = &cobra.Command{ Aliases: []string{"delete", "rm", "del"}, Args: cobra.ExactValidArgs(1), Run: func(cmd *cobra.Command, args []string) { - config.Initialize() + user := config.Initialize() - if !config.User.RemoveNode(args[0]) { + if !user.RemoveNode(args[0]) { logger.Error("Cannot remove node " + args[0] + " (does it exist?)") } }, diff --git a/internal/cmd/root.go b/internal/cmd/root.go index 522b04f..4066978 100644 --- a/internal/cmd/root.go +++ b/internal/cmd/root.go @@ -37,9 +37,9 @@ var force bool var rootCmd = &cobra.Command{ Use: "odm [flags] [] [args]", Short: "A command line tool to process aerial imagery in the cloud", - Version: "1.0.0", + Version: "1.1.0", Run: func(cmd *cobra.Command, args []string) { - config.Initialize() + user := config.Initialize() if len(args) == 0 { cmd.Help() os.Exit(0) @@ -64,7 +64,7 @@ var rootCmd = &cobra.Command{ logger.Debug("Options: " + strings.Join(options, " ")) - info := config.CheckLogin(nodeName, "", "") + info := user.CheckLogin(nodeName, "", "") // Check max images if len(inputFiles) > info.MaxImages { @@ -73,7 +73,7 @@ var rootCmd = &cobra.Command{ logger.Debug("NodeODM version: " + info.Version) - node, err := config.User.GetNode(nodeName) + node, err := user.GetNode(nodeName) if err != nil { logger.Error(err) } diff --git a/internal/config/auth.go b/internal/config/auth.go index 0778e7d..47026db 100644 --- a/internal/config/auth.go +++ b/internal/config/auth.go @@ -24,8 +24,8 @@ import ( // if it does, it attempts to login // it it doesn't, returns node.Info() // on error, it prints a message and exits -func CheckLogin(nodeName string, username string, password string) *odm.InfoResponse { - node, err := User.GetNode(nodeName) +func (c Configuration) CheckLogin(nodeName string, username string, password string) *odm.InfoResponse { + node, err := c.GetNode(nodeName) if err != nil { logger.Error(err) } @@ -47,7 +47,7 @@ func CheckLogin(nodeName string, username string, password string) *odm.InfoResp logger.Error(err) } - User.UpdateNode(nodeName, *node) + c.UpdateNode(nodeName, *node) } else { logger.Error(err) } diff --git a/internal/config/configuration.go b/internal/config/configuration.go index ecfe05f..6bebd91 100644 --- a/internal/config/configuration.go +++ b/internal/config/configuration.go @@ -33,9 +33,6 @@ import ( homedir "github.com/mitchellh/go-homedir" ) -// User contains the user's configuration -var User Configuration - // NewConfiguration creates a new configuration from a specified file path func NewConfiguration(filePath string) Configuration { conf := Configuration{} @@ -57,7 +54,7 @@ type Configuration struct { } // Initialize the configuration -func Initialize() { +func Initialize() Configuration { // Find home directory. home, err := homedir.Dir() if err != nil { @@ -66,14 +63,15 @@ func Initialize() { } cfgPath := filepath.Join(home, ".odm.json") + user := Configuration{} if exists, _ := fs.FileExists(cfgPath); exists { // Read existing config - User = loadFromFile(cfgPath) + user = loadFromFile(cfgPath) } else { // Download public nodes, choose a default nodes := GetPublicNodes() - User := NewConfiguration(cfgPath) + user = NewConfiguration(cfgPath) logger.Info("Found " + strconv.Itoa(len(nodes)) + " public nodes") @@ -83,11 +81,13 @@ func Initialize() { randomNode := nodes[rand.Intn(len(nodes))] logger.Info("Setting default node to " + randomNode.String()) - User.AddNode("default", randomNode.Url) + user.AddNode("default", randomNode.Url) logger.Info("Initialized configuration at " + cfgPath) } } + + return user } func saveToFile(conf Configuration, filePath string) {