@@ -9,12 +9,12 @@ import (
99 "flag"
1010 "fmt"
1111 "os"
12- "strconv"
1312 "strings"
1413 "time"
1514
1615 "github.com/rs/zerolog"
1716 "gitlab.com/lightmeter/controlcenter/metadata"
17+ "gitlab.com/lightmeter/controlcenter/util/envutil"
1818 "gitlab.com/lightmeter/controlcenter/util/errorutil"
1919 "gitlab.com/lightmeter/controlcenter/version"
2020)
@@ -67,20 +67,20 @@ func ParseWithErrorHandling(cmdlineArgs []string, lookupenv func(string) (string
6767 fs .BoolVar (& conf .ShouldWatchFromStdin , "stdin" , false , "Read log lines from stdin" )
6868
6969 fs .StringVar (& conf .WorkspaceDirectory , "workspace" ,
70- lookupEnvOrString ("LIGHTMETER_WORKSPACE" , "/var/lib/lightmeter_workspace" , lookupenv ),
70+ envutil . LookupEnvOrString ("LIGHTMETER_WORKSPACE" , "/var/lib/lightmeter_workspace" , lookupenv ),
7171 "Path to the directory to store all working data" )
7272
7373 fs .BoolVar (& conf .ImportOnly , "importonly" , false ,
7474 "Only import existing logs, exiting immediately, without running the full application." )
7575
76- b , err := lookupEnvOrBool ("LIGHTMETER_LOGS_USE_RSYNC" , false , lookupenv )
76+ b , err := envutil . LookupEnvOrBool ("LIGHTMETER_LOGS_USE_RSYNC" , false , lookupenv )
7777 if err != nil {
7878 return conf , err
7979 }
8080
8181 fs .BoolVar (& conf .RsyncedDir , "logs_use_rsync" , b , "Log directory is updated by rsync" )
8282
83- logYear , err := lookupEnvOrInt ("LIGHTMETER_LOGS_STARTING_YEAR" , 0 , lookupenv )
83+ logYear , err := envutil . LookupEnvOrInt ("LIGHTMETER_LOGS_STARTING_YEAR" , 0 , lookupenv )
8484 if err != nil {
8585 return conf , err
8686 }
@@ -91,17 +91,17 @@ func ParseWithErrorHandling(cmdlineArgs []string, lookupenv func(string) (string
9191 fs .BoolVar (& conf .ShowVersion , "version" , false , "Show Version Information" )
9292
9393 fs .StringVar (& conf .DirToWatch , "watch_dir" ,
94- lookupEnvOrString ("LIGHTMETER_WATCH_DIR" , "" , lookupenv ),
94+ envutil . LookupEnvOrString ("LIGHTMETER_WATCH_DIR" , "" , lookupenv ),
9595 "Path to the directory where postfix stores its log files, to be watched" )
9696
9797 fs .StringVar (& conf .Address , "listen" ,
98- lookupEnvOrString ("LIGHTMETER_LISTEN" , ":8080" , lookupenv ),
98+ envutil . LookupEnvOrString ("LIGHTMETER_LISTEN" , ":8080" , lookupenv ),
9999 "Network Address to listen to" )
100100
101101 var stringLogLevel = "INFO"
102102
103103 fs .StringVar (& stringLogLevel , "log_level" ,
104- lookupEnvOrString ("LIGHTMETER_LOG_LEVEL" , "INFO" , lookupenv ),
104+ envutil . LookupEnvOrString ("LIGHTMETER_LOG_LEVEL" , "INFO" , lookupenv ),
105105 "Log level (DEBUG, INFO, WARN, or ERROR. Default: INFO)" )
106106
107107 fs .StringVar (& conf .EmailToChange , "email_reset" , "" , "Change user info (email, name or password; depends on -workspace)" )
@@ -111,23 +111,23 @@ func ParseWithErrorHandling(cmdlineArgs []string, lookupenv func(string) (string
111111 fs .StringVar (& conf .ChangeUserInfoNewName , "new_user_name" , "" , "Update user name (depends on -email_reset)" )
112112
113113 fs .StringVar (& conf .Socket , "logs_socket" ,
114- lookupEnvOrString ("LIGHTMETER_LOGS_SOCKET" , "" , lookupenv ),
114+ envutil . LookupEnvOrString ("LIGHTMETER_LOGS_SOCKET" , "" , lookupenv ),
115115 "Receive logs via a Socket. E.g. unix=/tmp/lightemter.sock or tcp=localhost:9999" )
116116
117117 fs .StringVar (& conf .LogFormat , "log_format" ,
118- lookupEnvOrString ("LIGHTMETER_LOG_FORMAT" , "default" , lookupenv ),
118+ envutil . LookupEnvOrString ("LIGHTMETER_LOG_FORMAT" , "default" , lookupenv ),
119119 "Expected log format from external sources (like logstash, etc.)" )
120120
121121 var unparsedDefaultSettings string
122122
123- fs .StringVar (& unparsedDefaultSettings , "default_settings" , lookupEnvOrString ("LIGHTMETER_DEFAULT_SETTINGS" , `{}` , lookupenv ), "JSON string for default settings" )
123+ fs .StringVar (& unparsedDefaultSettings , "default_settings" , envutil . LookupEnvOrString ("LIGHTMETER_DEFAULT_SETTINGS" , `{}` , lookupenv ), "JSON string for default settings" )
124124
125125 var unparsedLogPatterns string
126126
127- fs .StringVar (& unparsedLogPatterns , "log_file_patterns" , lookupEnvOrString ("LIGHTMETER_LOG_FILE_PATTERNS" , "" , lookupenv ),
127+ fs .StringVar (& unparsedLogPatterns , "log_file_patterns" , envutil . LookupEnvOrString ("LIGHTMETER_LOG_FILE_PATTERNS" , "" , lookupenv ),
128128 `An optional colon separated list of the base filenames for the Postfix log files. Example: "mail.log:mail.err:mail.log" or "maillog"` )
129129
130- proxyConf , err := lookupEnvOrBool ("LIGHTMETER_I_KNOW_WHAT_I_AM_DOING_NOT_USING_A_REVERSE_PROXY" , false , lookupenv )
130+ proxyConf , err := envutil . LookupEnvOrBool ("LIGHTMETER_I_KNOW_WHAT_I_AM_DOING_NOT_USING_A_REVERSE_PROXY" , false , lookupenv )
131131 if err != nil {
132132 return conf , err
133133 }
@@ -136,9 +136,9 @@ func ParseWithErrorHandling(cmdlineArgs []string, lookupenv func(string) (string
136136 proxyConf , "Used when you are accessing the application without a reverse proxy (e.g. apache2, nginx or traefik), " +
137137 "which is unsupported by us at the moment and might lead to security issues" )
138138
139- fs .StringVar (& conf .RegisteredUserEmail , "registered_user_email" , lookupEnvOrString ("LIGHTMETER_REGISTERED_USER_EMAIL" , "" , lookupenv ), "Experimental: static user e-mail" )
140- fs .StringVar (& conf .RegisteredUserName , "registered_user_name" , lookupEnvOrString ("LIGHTMETER_REGISTERED_USER_NAME" , "" , lookupenv ), "Experimental: static user name" )
141- fs .StringVar (& conf .RegisteredUserPassword , "registered_user_password" , lookupEnvOrString ("LIGHTMETER_REGISTERED_USER_PASSWORD" , "" , lookupenv ), "Experimental: static user password" )
139+ fs .StringVar (& conf .RegisteredUserEmail , "registered_user_email" , envutil . LookupEnvOrString ("LIGHTMETER_REGISTERED_USER_EMAIL" , "" , lookupenv ), "Experimental: static user e-mail" )
140+ fs .StringVar (& conf .RegisteredUserName , "registered_user_name" , envutil . LookupEnvOrString ("LIGHTMETER_REGISTERED_USER_NAME" , "" , lookupenv ), "Experimental: static user name" )
141+ fs .StringVar (& conf .RegisteredUserPassword , "registered_user_password" , envutil . LookupEnvOrString ("LIGHTMETER_REGISTERED_USER_PASSWORD" , "" , lookupenv ), "Experimental: static user password" )
142142
143143 fs .BoolVar (& conf .GenerateDovecotConfig , "dovecot_conf_gen" , false , "Generate Dovecot Configuration" )
144144 fs .BoolVar (& conf .DovecotConfigIsOld , "dovecot_conf_is_old" , false , "Requires -dovecot_conf_gen. Use if if you're using a Dovecot older than 2.3.1" )
@@ -179,37 +179,3 @@ func ParseWithErrorHandling(cmdlineArgs []string, lookupenv func(string) (string
179179
180180 return conf , nil
181181}
182-
183- func lookupEnvOrString (key string , defaultVal string , loopkupenv func (string ) (string , bool )) string {
184- if val , ok := loopkupenv (key ); ok {
185- return val
186- }
187-
188- return defaultVal
189- }
190-
191- func lookupEnvOrBool (key string , defaultVal bool , loopkupenv func (string ) (string , bool )) (bool , error ) {
192- if val , ok := loopkupenv (key ); ok {
193- v , err := strconv .ParseBool (val )
194- if err != nil {
195- return v , fmt .Errorf ("Boolean env var %v boolean value could not be parsed: %w" , key , err )
196- }
197-
198- return v , nil
199- }
200-
201- return defaultVal , nil
202- }
203-
204- func lookupEnvOrInt (key string , defaultVal int64 , loopkupenv func (string ) (string , bool )) (int64 , error ) {
205- if val , ok := loopkupenv (key ); ok {
206- v , err := strconv .ParseInt (val , 10 , 32 )
207- if err != nil {
208- return v , fmt .Errorf ("Integer env var %v integer value could not be parsed: %w" , key , err )
209- }
210-
211- return v , nil
212- }
213-
214- return defaultVal , nil
215- }
0 commit comments