diff options
Diffstat (limited to 'config/options.go')
-rw-r--r-- | config/options.go | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/config/options.go b/config/options.go index 32105e9..06d3edd 100644 --- a/config/options.go +++ b/config/options.go @@ -4,11 +4,24 @@ package config // import "miniflux.app/config" +import ( + "fmt" + "strings" +) + const ( + defaultHTTPS = false + defaultHSTS = true + defaultHTTPService = true + defaultSchedulerService = true + defaultDebug = false defaultBaseURL = "http://localhost" + defaultRootURL = "http://localhost" + defaultBasePath = "" defaultWorkerPoolSize = 5 defaultPollingFrequency = 60 defaultBatchSize = 10 + defaultRunMigrations = false defaultDatabaseURL = "user=postgres password=postgres dbname=miniflux2 sslmode=disable" defaultDatabaseMaxConns = 20 defaultDatabaseMinConns = 1 @@ -20,10 +33,13 @@ const ( defaultCertCache = "/tmp/cert_cache" defaultCleanupFrequency = 24 defaultProxyImages = "http-only" + defaultCreateAdmin = false + defaultOAuth2UserCreation = false defaultOAuth2ClientID = "" defaultOAuth2ClientSecret = "" defaultOAuth2RedirectURL = "" defaultOAuth2Provider = "" + defaultPocketConsumerKey = "" defaultHTTPClientTimeout = 20 defaultHTTPClientMaxBodySize = 15 ) @@ -64,6 +80,44 @@ type Options struct { httpClientMaxBodySize int64 } +// NewOptions returns Options with default values. +func NewOptions() *Options { + return &Options{ + HTTPS: defaultHTTPS, + hsts: defaultHSTS, + httpService: defaultHTTPService, + schedulerService: defaultSchedulerService, + debug: defaultDebug, + baseURL: defaultBaseURL, + rootURL: defaultRootURL, + basePath: defaultBasePath, + databaseURL: defaultDatabaseURL, + databaseMaxConns: defaultDatabaseMaxConns, + databaseMinConns: defaultDatabaseMinConns, + runMigrations: defaultRunMigrations, + listenAddr: defaultListenAddr, + certFile: defaultCertFile, + certDomain: defaultCertDomain, + certCache: defaultCertCache, + certKeyFile: defaultKeyFile, + cleanupFrequency: defaultCleanupFrequency, + archiveReadDays: defaultArchiveReadDays, + pollingFrequency: defaultPollingFrequency, + batchSize: defaultBatchSize, + workerPoolSize: defaultWorkerPoolSize, + createAdmin: defaultCreateAdmin, + proxyImages: defaultProxyImages, + oauth2UserCreationAllowed: defaultOAuth2UserCreation, + oauth2ClientID: defaultOAuth2ClientID, + oauth2ClientSecret: defaultOAuth2ClientSecret, + oauth2RedirectURL: defaultOAuth2RedirectURL, + oauth2Provider: defaultOAuth2Provider, + pocketConsumerKey: defaultPocketConsumerKey, + httpClientTimeout: defaultHTTPClientTimeout, + httpClientMaxBodySize: defaultHTTPClientMaxBodySize * 1024 * 1024, + } +} + // HasDebugMode returns true if debug mode is enabled. func (o *Options) HasDebugMode() bool { return o.debug @@ -226,3 +280,40 @@ func (o *Options) HTTPClientTimeout() int { func (o *Options) HTTPClientMaxBodySize() int64 { return o.httpClientMaxBodySize } + +func (o *Options) String() string { + var builder strings.Builder + builder.WriteString(fmt.Sprintf("DEBUG: %v\n", o.debug)) + builder.WriteString(fmt.Sprintf("HTTP_SERVICE: %v\n", o.httpService)) + builder.WriteString(fmt.Sprintf("SCHEDULER_SERVICE: %v\n", o.schedulerService)) + builder.WriteString(fmt.Sprintf("HTTPS: %v\n", o.HTTPS)) + builder.WriteString(fmt.Sprintf("HSTS: %v\n", o.hsts)) + builder.WriteString(fmt.Sprintf("BASE_URL: %v\n", o.baseURL)) + builder.WriteString(fmt.Sprintf("ROOT_URL: %v\n", o.rootURL)) + builder.WriteString(fmt.Sprintf("BASE_PATH: %v\n", o.basePath)) + builder.WriteString(fmt.Sprintf("LISTEN_ADDR: %v\n", o.listenAddr)) + builder.WriteString(fmt.Sprintf("DATABASE_URL: %v\n", o.databaseURL)) + builder.WriteString(fmt.Sprintf("DATABASE_MAX_CONNS: %v\n", o.databaseMaxConns)) + builder.WriteString(fmt.Sprintf("DATABASE_MIN_CONNS: %v\n", o.databaseMinConns)) + builder.WriteString(fmt.Sprintf("RUN_MIGRATIONS: %v\n", o.runMigrations)) + builder.WriteString(fmt.Sprintf("CERT_FILE: %v\n", o.certFile)) + builder.WriteString(fmt.Sprintf("KEY_FILE: %v\n", o.certKeyFile)) + builder.WriteString(fmt.Sprintf("CERT_DOMAIN: %v\n", o.certDomain)) + builder.WriteString(fmt.Sprintf("CERT_CACHE: %v\n", o.certCache)) + builder.WriteString(fmt.Sprintf("CLEANUP_FREQUENCY: %v\n", o.cleanupFrequency)) + builder.WriteString(fmt.Sprintf("WORKER_POOL_SIZE: %v\n", o.workerPoolSize)) + builder.WriteString(fmt.Sprintf("POLLING_FREQUENCY: %v\n", o.pollingFrequency)) + builder.WriteString(fmt.Sprintf("BATCH_SIZE: %v\n", o.batchSize)) + builder.WriteString(fmt.Sprintf("ARCHIVE_READ_DAYS: %v\n", o.archiveReadDays)) + builder.WriteString(fmt.Sprintf("PROXY_IMAGES: %v\n", o.proxyImages)) + builder.WriteString(fmt.Sprintf("CREATE_ADMIN: %v\n", o.createAdmin)) + builder.WriteString(fmt.Sprintf("POCKET_CONSUMER_KEY: %v\n", o.pocketConsumerKey)) + builder.WriteString(fmt.Sprintf("OAUTH2_USER_CREATION: %v\n", o.oauth2UserCreationAllowed)) + builder.WriteString(fmt.Sprintf("OAUTH2_CLIENT_ID: %v\n", o.oauth2ClientID)) + builder.WriteString(fmt.Sprintf("OAUTH2_CLIENT_SECRET: %v\n", o.oauth2ClientSecret)) + builder.WriteString(fmt.Sprintf("OAUTH2_REDIRECT_URL: %v\n", o.oauth2RedirectURL)) + builder.WriteString(fmt.Sprintf("OAUTH2_PROVIDER: %v\n", o.oauth2Provider)) + builder.WriteString(fmt.Sprintf("HTTP_CLIENT_TIMEOUT: %v\n", o.httpClientTimeout)) + builder.WriteString(fmt.Sprintf("HTTP_CLIENT_MAX_BODY_SIZE: %v\n", o.httpClientMaxBodySize)) + return builder.String() +} |