@@ -220,76 +220,72 @@ impl Config {
220220 panic ! ( "" )
221221 } ) ;
222222
223- // Check if a custom DB_URL is provided
224223 let db_url = & CLI_ARGS
225224 . db_url
226225 . clone ( )
227226 . or_else ( || dotenv. db_url . clone ( ) )
228227 . or_else ( || default_config. map ( |x| x. db_url . clone ( ) ) . flatten ( ) ) ;
229228
230- // If DB_URL is provided, we don't require individual connection parameters
231- let db_host = if db_url. is_some ( ) {
229+ let db_host_chain = || {
232230 CLI_ARGS
233231 . db_host
234232 . clone ( )
235233 . or_else ( || dotenv. db_host . clone ( ) )
236234 . or_else ( || default_config. map ( |x| x. db_host . clone ( ) ) )
237- . unwrap_or_default ( )
238- } else {
239- CLI_ARGS
240- . db_host
241- . clone ( )
242- . or_else ( || dotenv. db_host . clone ( ) )
243- . or_else ( || default_config. map ( |x| x. db_host . clone ( ) ) )
244- . expect (
245- r"
246- Failed to fetch DB host.
247- Please provide it at least through a CLI arg or an environment variable or through
248- file based configuration, or provide a custom DB_URL
249- " ,
250- )
251235 } ;
252236
253- let db_port = if db_url. is_some ( ) {
254- CLI_ARGS
255- . db_port
256- . or ( dotenv. db_port )
257- . or_else ( || default_config. map ( |x| x. db_port ) )
258- . unwrap_or_default ( )
259- } else {
237+ let db_host = match ( db_url. is_some ( ) , db_host_chain ( ) ) {
238+ ( true , Some ( v) ) => v,
239+ ( true , None ) => String :: new ( ) ,
240+ ( false , Some ( v) ) => v,
241+ ( false , None ) => panic ! (
242+ r"
243+ Failed to fetch DB host.
244+ Please provide it at least through a CLI arg or an environment variable or through
245+ file based configuration, or provide a custom DB_URL
246+ "
247+ ) ,
248+ } ;
249+
250+ let db_port_chain = || {
260251 CLI_ARGS
261252 . db_port
262253 . or ( dotenv. db_port )
263254 . or_else ( || default_config. map ( |x| x. db_port ) )
264- . expect (
265- r"
266- Failed to fetch DB port.
267- Please provide it at least through a CLI arg or an environment variable or through
268- file based configuration, or provide a custom DB_URL
269- " ,
270- )
271255 } ;
272256
273- let db_user = if db_url. is_some ( ) {
274- CLI_ARGS
275- . db_user
276- . clone ( )
277- . or_else ( || dotenv. db_user . clone ( ) )
278- . or_else ( || default_config. map ( |x| x. db_user . clone ( ) ) )
279- . unwrap_or_default ( )
280- } else {
257+ let db_port = match ( db_url. is_some ( ) , db_port_chain ( ) ) {
258+ ( true , Some ( v) ) => v,
259+ ( true , None ) => 0 ,
260+ ( false , Some ( v) ) => v,
261+ ( false , None ) => panic ! (
262+ r"
263+ Failed to fetch DB port.
264+ Please provide it at least through a CLI arg or an environment variable or through
265+ file based configuration, or provide a custom DB_URL
266+ "
267+ ) ,
268+ } ;
269+
270+ let db_user_chain = || {
281271 CLI_ARGS
282272 . db_user
283273 . clone ( )
284274 . or_else ( || dotenv. db_user . clone ( ) )
285275 . or_else ( || default_config. map ( |x| x. db_user . clone ( ) ) )
286- . expect (
287- r"
288- Failed to fetch DB user.
289- Please provide it at least through a CLI arg or an environment variable or through
290- file based configuration, or provide a custom DB_URL
291- " ,
292- )
276+ } ;
277+
278+ let db_user = match ( db_url. is_some ( ) , db_user_chain ( ) ) {
279+ ( true , Some ( v) ) => v,
280+ ( true , None ) => String :: new ( ) ,
281+ ( false , Some ( v) ) => v,
282+ ( false , None ) => panic ! (
283+ r"
284+ Failed to fetch DB user.
285+ Please provide it at least through a CLI arg or an environment variable or through
286+ file based configuration, or provide a custom DB_URL
287+ "
288+ ) ,
293289 } ;
294290
295291 let db_pass = & CLI_ARGS
0 commit comments