mirror of
				https://github.com/gravitl/netmaker.git
				synced 2025-10-31 16:43:07 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package context
 | |
| 
 | |
| import (
 | |
| 	"log"
 | |
| 
 | |
| 	"github.com/gravitl/netmaker/cli/config"
 | |
| 	"github.com/spf13/cobra"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	endpoint  string
 | |
| 	username  string
 | |
| 	password  string
 | |
| 	masterKey string
 | |
| 	sso       bool
 | |
| )
 | |
| 
 | |
| var contextSetCmd = &cobra.Command{
 | |
| 	Use:   "set [NAME]",
 | |
| 	Args:  cobra.ExactArgs(1),
 | |
| 	Short: "Create a context or update an existing one",
 | |
| 	Long:  `Create a context or update an existing one`,
 | |
| 	Run: func(cmd *cobra.Command, args []string) {
 | |
| 		ctx := config.Context{
 | |
| 			Endpoint:  endpoint,
 | |
| 			Username:  username,
 | |
| 			Password:  password,
 | |
| 			MasterKey: masterKey,
 | |
| 			SSO:       sso,
 | |
| 		}
 | |
| 		if ctx.Username == "" && ctx.MasterKey == "" && !ctx.SSO {
 | |
| 			cmd.Usage()
 | |
| 			log.Fatal("Either username/password or master key is required")
 | |
| 		}
 | |
| 		config.SetContext(args[0], ctx)
 | |
| 	},
 | |
| }
 | |
| 
 | |
| func init() {
 | |
| 	contextSetCmd.Flags().StringVar(&endpoint, "endpoint", "", "Endpoint of the API Server")
 | |
| 	contextSetCmd.MarkFlagRequired("endpoint")
 | |
| 	contextSetCmd.Flags().StringVar(&username, "username", "", "Username")
 | |
| 	contextSetCmd.Flags().StringVar(&password, "password", "", "Password")
 | |
| 	contextSetCmd.MarkFlagsRequiredTogether("username", "password")
 | |
| 	contextSetCmd.Flags().BoolVar(&sso, "sso", false, "Login via Single Sign On (SSO) ?")
 | |
| 	contextSetCmd.Flags().StringVar(&masterKey, "master_key", "", "Master Key")
 | |
| 	rootCmd.AddCommand(contextSetCmd)
 | |
| }
 |