package presences import ( "github.com/spf13/pflag" "github.com/spf13/viper" ) const ( flagPortConfig = "Port" flagPortDefault = 8080 flagPort = "port" flagTLSCertConfig = "TLS.Cert" flagTLSCertDefault = "" flagTLSCert = "tls-cert" flagTLSKeyConfig = "TLS.Key" flagTLSKeyDefault = "" flagTLSKey = "tls-key" flagDBDatabaseConfig = "DB.Database" flagDBDatabaseDefault = "presences" flagDBDatabase = "db-database" flagDBHostConfig = "DB.Host" flagDBHostDefault = "presences-db" flagDBHost = "db-host" flagDBPasswordConfig = "DB.Password" flagDBPasswordDefault = "presences" flagDBPassword = "db-password" flagDBPortConfig = "DB.Port" flagDBPortDefault = 5432 flagDBPort = "db-port" flagDBSSLModeConfig = "DB.SSLMode" flagDBSSLModeDefault = "prefer" flagDBSSLMode = "db-sslmode" flagDBUsernameConfig = "DB.Username" flagDBUsernameDefault = "presences" flagDBUsername = "db-username" /* flagUICredentialsConfig = "UI.Credentials" //flagUICredentialsDefault = make(map[string]string) flagUICredentials = "ui-credentials" */ //TODO check if any necessary flags are missing ) // BindClientFlags declares client-related flags and config options in the specified *pflag.FlagSet func BindFlags(set *pflag.FlagSet) error { // Credentials -> seulement par config set.Int(flagPort, flagPortDefault, "User interface port") if err := viper.BindPFlag(flagPortConfig, set.Lookup(flagPort)); err != nil { return err } set.String(flagTLSKey, flagTLSKeyDefault, "User interface TLS private key (or path to file)") if err := viper.BindPFlag(flagTLSKeyConfig, set.Lookup(flagTLSKey)); err != nil { return err } set.String(flagTLSCert, flagTLSCertDefault, "User interface TLS certificate (or path to file)") if err := viper.BindPFlag(flagTLSCertConfig, set.Lookup(flagTLSCert)); err != nil { return err } set.String(flagDBDatabase, flagDBDatabaseDefault, "PostgreSQL database") if err := viper.BindPFlag(flagDBDatabaseConfig, set.Lookup(flagDBDatabase)); err != nil { return err } set.String(flagDBHost, flagDBHostDefault, "PostgreSQL host") if err := viper.BindPFlag(flagDBHostConfig, set.Lookup(flagDBHost)); err != nil { return err } set.String(flagDBPassword, flagDBPasswordDefault, "PostgreSQL password") if err := viper.BindPFlag(flagDBPasswordConfig, set.Lookup(flagDBPassword)); err != nil { return err } set.Int(flagDBPort, flagDBPortDefault, "PostgreSQL port") if err := viper.BindPFlag(flagDBPortConfig, set.Lookup(flagDBPort)); err != nil { return err } set.String(flagDBSSLMode, flagDBSSLModeDefault, "PostgreSQL ssl mode") if err := viper.BindPFlag(flagDBSSLModeConfig, set.Lookup(flagDBSSLMode)); err != nil { return err } set.String(flagDBUsername, flagDBUsernameDefault, "PostgreSQL username") if err := viper.BindPFlag(flagDBUsernameConfig, set.Lookup(flagDBUsername)); err != nil { return err } /* set.StringToString(flagUICredentials, nil, "Sets of credentials for the UI console") if err := viper.BindPFlag(flagUICredentialsConfig, set.Lookup(flagUICredentials)); err != nil { return err } */ return nil }