pkg/flags/flags.go (85 lines of code) (raw):
package flags
import (
"github.com/aliyun/saml2alibabacloud/pkg/cfg"
)
// CommonFlags flags common to all of the `saml2alibabacloud` commands (except `help`)
type CommonFlags struct {
AppID string
BrowserType string
BrowserExecutablePath string
BrowserAutoFill bool
ClientID string
ClientSecret string
ConfigFile string
IdpAccount string
IdpProvider string
MFA string
MFAToken string
URL string
Username string
Password string
RoleArn string
AlibabaCloudURN string
SessionDuration int
SkipPrompt bool
SkipVerify bool
Profile string
Subdomain string
ResourceID string
DisableKeychain bool
Region string
}
// LoginExecFlags flags for the Login / Exec commands
type LoginExecFlags struct {
CommonFlags *CommonFlags
DownloadBrowser bool
Force bool
DuoMFAOption string
ExecProfile string
}
type ConsoleFlags struct {
LoginExecFlags *LoginExecFlags
Link bool
}
// ApplyFlagOverrides overrides IDPAccount with command line settings
func ApplyFlagOverrides(commonFlags *CommonFlags, account *cfg.IDPAccount) {
if commonFlags.AppID != "" {
account.AppID = commonFlags.AppID
}
if commonFlags.URL != "" {
account.URL = commonFlags.URL
}
if commonFlags.Username != "" {
account.Username = commonFlags.Username
}
if commonFlags.SkipVerify {
account.SkipVerify = commonFlags.SkipVerify
}
if commonFlags.IdpProvider != "" {
account.Provider = commonFlags.IdpProvider
}
if commonFlags.BrowserType != "" {
account.BrowserType = commonFlags.BrowserType
}
if commonFlags.MFA != "" {
account.MFA = commonFlags.MFA
}
if commonFlags.AlibabaCloudURN != "" {
account.AlibabaCloudURN = commonFlags.AlibabaCloudURN
}
if commonFlags.SessionDuration != 0 {
account.SessionDuration = commonFlags.SessionDuration
}
if commonFlags.Profile != "" {
account.Profile = commonFlags.Profile
}
if commonFlags.Subdomain != "" {
account.Subdomain = commonFlags.Subdomain
}
if commonFlags.RoleArn != "" {
account.RoleARN = commonFlags.RoleArn
}
if commonFlags.ResourceID != "" {
account.ResourceID = commonFlags.ResourceID
}
if commonFlags.Region != "" {
account.Region = commonFlags.Region
}
}