From 88ee528f24269e9f83201cc4d4be2d98e49a01dc Mon Sep 17 00:00:00 2001 From: Tom Dohrmann Date: Tue, 2 Feb 2021 11:32:08 +0100 Subject: [PATCH] prefer PGPASSFILE over default paths --- sqlx-core/src/postgres/options/mod.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sqlx-core/src/postgres/options/mod.rs b/sqlx-core/src/postgres/options/mod.rs index 68527b20..558d42c3 100644 --- a/sqlx-core/src/postgres/options/mod.rs +++ b/sqlx-core/src/postgres/options/mod.rs @@ -359,19 +359,18 @@ fn default_host(port: u16) -> String { /// try to load a password from the various pgpass file locations fn load_password(host: &str, port: u16, username: &str, database: Option<&str>) -> Option { - #[cfg(not(target_os = "windows"))] - let default_file = dirs::home_dir().map(|path| path.join(".pgpass")); - #[cfg(target_os = "windows")] - let default_file = dirs::data_dir().map(|path| path.join("postgres").join("pgpass.conf")); - - if let Some(file) = default_file { + let custom_file = var_os("PGPASSFILE")?; + if let Some(file) = custom_file { if let Some(password) = load_password_from_file(file, host, port, username, database) { return Some(password); } } - let custom_file = var_os("PGPASSFILE")?; - load_password_from_file(PathBuf::from(custom_file), host, port, username, database) + #[cfg(not(target_os = "windows"))] + let default_file = dirs::home_dir().map(|path| path.join(".pgpass")); + #[cfg(target_os = "windows")] + let default_file = dirs::data_dir().map(|path| path.join("postgres").join("pgpass.conf")); + load_password_from_file(default_file, host, port, username, database) } /// try to extract a password from a pgpass file