diff --git a/internal/manage/actions/action/action.go b/internal/manage/actions/action/action.go index a7dcc9b..4f3eb00 100644 --- a/internal/manage/actions/action/action.go +++ b/internal/manage/actions/action/action.go @@ -3,6 +3,7 @@ package action import ( "encoding/json" "fmt" + "os" "github.com/OpenSlides/openslides-cli/internal/logger" "github.com/OpenSlides/openslides-cli/internal/manage/client" @@ -46,8 +47,16 @@ func Cmd() *cobra.Command { passwordFile := cmd.Flags().String("password-file", "", "file with password for authorization (required)") payloadFile := cmd.Flags().StringP("file", "f", "", "JSON file with the payload, or - for stdin") - _ = cmd.MarkFlagRequired("address") - _ = cmd.MarkFlagRequired("password-file") + if addressEnv := os.Getenv("OSMANAGE_BACKEND_ADDRESS"); addressEnv != "" { + address = &addressEnv + } else { + _ = cmd.MarkFlagRequired("address") + } + if passwordFileEnv := os.Getenv("OSMANAGE_BACKEND_PASSWORD_FILE"); passwordFileEnv != "" { + passwordFile = &passwordFileEnv + } else { + _ = cmd.MarkFlagRequired("password-file") + } cmd.RunE = func(cmd *cobra.Command, args []string) error { logger.Info("=== ACTION ===") diff --git a/internal/manage/actions/createuser/createuser.go b/internal/manage/actions/createuser/createuser.go index c2668c8..43fdb5b 100644 --- a/internal/manage/actions/createuser/createuser.go +++ b/internal/manage/actions/createuser/createuser.go @@ -3,6 +3,7 @@ package createuser import ( "encoding/json" "fmt" + "os" "github.com/OpenSlides/openslides-cli/internal/logger" "github.com/OpenSlides/openslides-cli/internal/manage/client" @@ -46,8 +47,16 @@ func Cmd() *cobra.Command { passwordFile := cmd.Flags().String("password-file", "", "file with password for authorization (required)") userFile := cmd.Flags().StringP("file", "f", "", "JSON file with user data, or - for stdin") - _ = cmd.MarkFlagRequired("address") - _ = cmd.MarkFlagRequired("password-file") + if addressEnv := os.Getenv("OSMANAGE_BACKEND_ADDRESS"); addressEnv != "" { + address = &addressEnv + } else { + _ = cmd.MarkFlagRequired("address") + } + if passwordFileEnv := os.Getenv("OSMANAGE_BACKEND_PASSWORD_FILE"); passwordFileEnv != "" { + passwordFile = &passwordFileEnv + } else { + _ = cmd.MarkFlagRequired("password-file") + } cmd.RunE = func(cmd *cobra.Command, args []string) error { logger.Info("=== CREATE USER ===") diff --git a/internal/manage/actions/get/get.go b/internal/manage/actions/get/get.go index 5918dbd..1e49914 100644 --- a/internal/manage/actions/get/get.go +++ b/internal/manage/actions/get/get.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "os" "reflect" "regexp" "strconv" @@ -94,12 +95,31 @@ func Cmd() *cobra.Command { postgresDatabase := cmd.Flags().String("postgres-database", "", "PostgreSQL database (required)") postgresPasswordFile := cmd.Flags().String("postgres-password-file", "", "PostgreSQL password file (required)") - // Mark PostgreSQL flags as required - _ = cmd.MarkFlagRequired("postgres-host") - _ = cmd.MarkFlagRequired("postgres-port") - _ = cmd.MarkFlagRequired("postgres-user") - _ = cmd.MarkFlagRequired("postgres-database") - _ = cmd.MarkFlagRequired("postgres-password-file") + if postgresHostEnv := os.Getenv("OSMANAGE_POSTGRES_HOST"); postgresHostEnv != "" { + postgresHost = &postgresHostEnv + } else { + _ = cmd.MarkFlagRequired("postgres-host") + } + if postgresPortEnv := os.Getenv("OSMANAGE_POSTGRES_PORT"); postgresPortEnv != "" { + postgresPort = &postgresPortEnv + } else { + _ = cmd.MarkFlagRequired("postgres-port") + } + if postgresUserEnv := os.Getenv("OSMANAGE_POSTGRES_USER"); postgresUserEnv != "" { + postgresUser = &postgresUserEnv + } else { + _ = cmd.MarkFlagRequired("postgres-user") + } + if postgresDatabaseEnv := os.Getenv("OSMANAGE_POSTGRES_DATABASE"); postgresDatabaseEnv != "" { + postgresDatabase = &postgresDatabaseEnv + } else { + _ = cmd.MarkFlagRequired("postgres-database") + } + if postgresPasswordFileEnv := os.Getenv("OSMANAGE_POSTGRES_PASSWORD_FILE"); postgresPasswordFileEnv != "" { + postgresPasswordFile = &postgresPasswordFileEnv + } else { + _ = cmd.MarkFlagRequired("postgres-password-file") + } // Query flags fields := cmd.Flags().StringSlice("fields", nil, "only include the provided fields in output") diff --git a/internal/manage/actions/initialdata/initialdata.go b/internal/manage/actions/initialdata/initialdata.go index 62e2cab..09248b6 100644 --- a/internal/manage/actions/initialdata/initialdata.go +++ b/internal/manage/actions/initialdata/initialdata.go @@ -50,8 +50,16 @@ func Cmd() *cobra.Command { superadminPasswordFile := cmd.Flags().String("superadmin-password-file", "", "file with superadmin password (required)") dataFile := cmd.Flags().StringP("file", "f", "", "JSON file with initial data, or - for stdin") - _ = cmd.MarkFlagRequired("address") - _ = cmd.MarkFlagRequired("password-file") + if addressEnv := os.Getenv("OSMANAGE_BACKEND_ADDRESS"); addressEnv != "" { + address = &addressEnv + } else { + _ = cmd.MarkFlagRequired("address") + } + if passwordFileEnv := os.Getenv("OSMANAGE_BACKEND_PASSWORD_FILE"); passwordFileEnv != "" { + passwordFile = &passwordFileEnv + } else { + _ = cmd.MarkFlagRequired("password-file") + } _ = cmd.MarkFlagRequired("superadmin-password-file") cmd.RunE = func(cmd *cobra.Command, args []string) error { diff --git a/internal/manage/actions/migrations/migrations.go b/internal/manage/actions/migrations/migrations.go index d4773ef..98afc8e 100644 --- a/internal/manage/actions/migrations/migrations.go +++ b/internal/manage/actions/migrations/migrations.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "os" "strings" "time" @@ -115,8 +116,16 @@ func createMigrationCmd(name, description string, withProgressTracking bool) *co address := cmd.Flags().StringP("address", "a", "", "address of the OpenSlides backendManage service (required)") passwordFile := cmd.Flags().String("password-file", "", "file with password for authorization (required)") - _ = cmd.MarkFlagRequired("address") - _ = cmd.MarkFlagRequired("password-file") + if addressEnv := os.Getenv("OSMANAGE_BACKEND_ADDRESS"); addressEnv != "" { + address = &addressEnv + } else { + _ = cmd.MarkFlagRequired("address") + } + if passwordFileEnv := os.Getenv("OSMANAGE_BACKEND_PASSWORD_FILE"); passwordFileEnv != "" { + passwordFile = &passwordFileEnv + } else { + _ = cmd.MarkFlagRequired("password-file") + } var progressInterval *time.Duration if withProgressTracking { diff --git a/internal/manage/actions/set/set.go b/internal/manage/actions/set/set.go index fde5945..2ca1e3f 100644 --- a/internal/manage/actions/set/set.go +++ b/internal/manage/actions/set/set.go @@ -3,6 +3,7 @@ package set import ( "encoding/json" "fmt" + "os" "sort" "strings" @@ -62,8 +63,16 @@ func Cmd() *cobra.Command { passwordFile := cmd.Flags().String("password-file", "", "file with password for authorization (required)") payloadFile := cmd.Flags().StringP("file", "f", "", "JSON file with the payload, or - for stdin") - _ = cmd.MarkFlagRequired("address") - _ = cmd.MarkFlagRequired("password-file") + if addressEnv := os.Getenv("OSMANAGE_BACKEND_ADDRESS"); addressEnv != "" { + address = &addressEnv + } else { + _ = cmd.MarkFlagRequired("address") + } + if passwordFileEnv := os.Getenv("OSMANAGE_BACKEND_PASSWORD_FILE"); passwordFileEnv != "" { + passwordFile = &passwordFileEnv + } else { + _ = cmd.MarkFlagRequired("password-file") + } cmd.RunE = func(cmd *cobra.Command, args []string) error { logger.Info("=== SET ACTION ===") diff --git a/internal/manage/actions/setpassword/setpassword.go b/internal/manage/actions/setpassword/setpassword.go index 848d97c..4f105c4 100644 --- a/internal/manage/actions/setpassword/setpassword.go +++ b/internal/manage/actions/setpassword/setpassword.go @@ -3,6 +3,7 @@ package setpassword import ( "encoding/json" "fmt" + "os" "strings" "github.com/OpenSlides/openslides-cli/internal/logger" @@ -30,8 +31,16 @@ func Cmd() *cobra.Command { password := cmd.Flags().StringP("password", "p", "", "new password of the user (required)") userID := cmd.Flags().Int64P("user_id", "u", 0, "ID of the user account (required)") - _ = cmd.MarkFlagRequired("address") - _ = cmd.MarkFlagRequired("password-file") + if addressEnv := os.Getenv("OSMANAGE_BACKEND_ADDRESS"); addressEnv != "" { + address = &addressEnv + } else { + _ = cmd.MarkFlagRequired("address") + } + if passwordFileEnv := os.Getenv("OSMANAGE_BACKEND_PASSWORD_FILE"); passwordFileEnv != "" { + passwordFile = &passwordFileEnv + } else { + _ = cmd.MarkFlagRequired("password-file") + } _ = cmd.MarkFlagRequired("user_id") _ = cmd.MarkFlagRequired("password")