From 376739d08e385869ac850739edf741b8054ab051 Mon Sep 17 00:00:00 2001 From: brianheineman Date: Tue, 16 Jul 2024 16:38:56 -0600 Subject: [PATCH] fix: updated PgConfigBuilder interface to align with pg_config executable --- Cargo.lock | 143 +++++++++-------- Cargo.toml | 10 +- postgresql_archive/src/extractor/registry.rs | 1 + postgresql_archive/src/hasher/registry.rs | 2 + postgresql_archive/src/matcher/registry.rs | 1 + postgresql_archive/src/repository/registry.rs | 1 + postgresql_commands/src/pg_config.rs | 145 ++++++++---------- 7 files changed, 147 insertions(+), 156 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index feb529c..717da3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -166,13 +166,13 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -261,9 +261,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" [[package]] name = "bzip2" @@ -294,13 +294,12 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.104" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b6a57f98764a267ff415d50a25e6e166f3831a5071af4995296ea97d210490" +checksum = "324c74f2155653c90b04f25b2a47a8a631360cb908f92a772695f430c7e31052" dependencies = [ "jobserver", "libc", - "once_cell", ] [[package]] @@ -360,18 +359,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.8" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" +checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.8" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" +checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" dependencies = [ "anstyle", "clap_lex", @@ -538,9 +537,9 @@ dependencies = [ [[package]] name = "deflate64" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ace6c86376be0b6cdcf3fb41882e81d94b31587573d1cfa9d01cd06bba210d" +checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b" [[package]] name = "der" @@ -570,7 +569,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -593,7 +592,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -822,7 +821,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -974,9 +973,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", @@ -1009,9 +1008,9 @@ checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e" [[package]] name = "hyper" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4fe55fb7a772d59a5ff1dfbff4fe0258d19b89fec4b233e75d35d5d2316badc" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", @@ -1036,7 +1035,7 @@ dependencies = [ "http", "hyper", "hyper-util", - "rustls 0.23.10", + "rustls 0.23.11", "rustls-native-certs", "rustls-pki-types", "tokio", @@ -1292,9 +1291,9 @@ dependencies = [ [[package]] name = "matchit" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3c2fcf089c060eb333302d80c5f3ffa8297abecf220f788e4a09ef85f59420" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "md-5" @@ -1471,9 +1470,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "oorandom" -version = "11.1.3" +version = "11.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" [[package]] name = "openssl" @@ -1498,7 +1497,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -1568,7 +1567,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.2", + "redox_syscall 0.5.3", "smallvec", "windows-targets 0.52.6", ] @@ -1639,7 +1638,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -1873,7 +1872,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.10", + "rustls 0.23.11", "thiserror", "tokio", "tracing", @@ -1889,7 +1888,7 @@ dependencies = [ "rand", "ring", "rustc-hash", - "rustls 0.23.10", + "rustls 0.23.11", "slab", "thiserror", "tinyvec", @@ -1988,9 +1987,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ "bitflags 2.6.0", ] @@ -2065,7 +2064,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.10", + "rustls 0.23.11", "rustls-native-certs", "rustls-pemfile 2.1.2", "rustls-pki-types", @@ -2123,9 +2122,9 @@ dependencies = [ [[package]] name = "reqwest-tracing" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71a37668dccbd75e045f26811891dd939f28c38d3b7ca572a4fce4bc462b83ec" +checksum = "4e45dcad05dc210fdb0278d62a679eb768730af808f8cb552f810da89bdbe76d" dependencies = [ "anyhow", "async-trait", @@ -2219,9 +2218,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.10" +version = "0.23.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" +checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" dependencies = [ "once_cell", "ring", @@ -2332,9 +2331,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", "core-foundation", @@ -2345,9 +2344,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -2361,22 +2360,22 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -2756,9 +2755,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.68" +version = "2.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" +checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" dependencies = [ "proc-macro2", "quote", @@ -2819,27 +2818,27 @@ checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -2883,9 +2882,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55115c6fbe2d2bef26eb09ad74bde02d8255476fc0c7b515ef09fbb35742d82" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -2898,9 +2897,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" dependencies = [ "backtrace", "bytes", @@ -2923,7 +2922,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -2968,7 +2967,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.10", + "rustls 0.23.11", "rustls-pki-types", "tokio", ] @@ -3044,7 +3043,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -3235,7 +3234,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", "wasm-bindgen-shared", ] @@ -3269,7 +3268,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3548,7 +3547,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -3568,7 +3567,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.68", + "syn 2.0.71", ] [[package]] @@ -3625,27 +3624,27 @@ dependencies = [ [[package]] name = "zstd" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.1.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" +checksum = "fa556e971e7b568dc775c136fc9de8c779b1c2fc3a63defaafadffdbd3181afa" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.11+zstd.1.5.6" +version = "2.0.12+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75652c55c0b6f3e6f12eb786fe1bc960396bf05a1eb3bf1f3691c3610ac2e6d4" +checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 4dc8ab5..8946427 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ version = "0.14.1" [workspace.dependencies] anyhow = "1.0.86" -async-trait = "0.1.80" +async-trait = "0.1.81" blake2 = "0.10.6" criterion = "0.5.1" flate2 = "1.0.30" @@ -40,9 +40,9 @@ regex = "1.10.5" reqwest = { version = "0.12.5", default-features = false } reqwest-middleware = "0.3.1" reqwest-retry = "0.6.0" -reqwest-tracing = "0.5.0" +reqwest-tracing = "0.5.2" semver = "1.0.23" -serde = "1.0.203" +serde = "1.0.204" serde_json = "1.0.118" sha1 = "0.10.6" sha2 = "0.10.8" @@ -52,8 +52,8 @@ tar = "0.4.41" target-triple = "0.1.3" test-log = "0.2.16" tempfile = "3.10.1" -thiserror = "1.0.61" -tokio = "1.38.0" +thiserror = "1.0.62" +tokio = "1.38.1" tracing = "0.1.40" url = "2.5.2" xz2 = "0.1.7" diff --git a/postgresql_archive/src/extractor/registry.rs b/postgresql_archive/src/extractor/registry.rs index 0906c99..52b47b6 100644 --- a/postgresql_archive/src/extractor/registry.rs +++ b/postgresql_archive/src/extractor/registry.rs @@ -65,6 +65,7 @@ impl RepositoryRegistry { impl Default for RepositoryRegistry { /// Creates a new repository registry with the default repositories registered. fn default() -> Self { + #[allow(unused_mut)] let mut registry = Self::new(); #[cfg(feature = "theseus")] registry.register(|url| Ok(url.starts_with(theseus::URL)), theseus::extract); diff --git a/postgresql_archive/src/hasher/registry.rs b/postgresql_archive/src/hasher/registry.rs index 36beabf..f3f321d 100644 --- a/postgresql_archive/src/hasher/registry.rs +++ b/postgresql_archive/src/hasher/registry.rs @@ -6,6 +6,7 @@ use crate::hasher::md5; use crate::hasher::sha1; #[cfg(feature = "sha2")] use crate::hasher::sha2_256; +#[allow(unused_imports)] #[cfg(feature = "sha2")] use crate::hasher::sha2_512; #[cfg(feature = "maven")] @@ -75,6 +76,7 @@ impl HasherRegistry { impl Default for HasherRegistry { /// Creates a new hasher registry with the default hashers registered. fn default() -> Self { + #[allow(unused_mut)] let mut registry = Self::new(); #[cfg(feature = "theseus")] registry.register( diff --git a/postgresql_archive/src/matcher/registry.rs b/postgresql_archive/src/matcher/registry.rs index 4bd9e72..ff7b697 100644 --- a/postgresql_archive/src/matcher/registry.rs +++ b/postgresql_archive/src/matcher/registry.rs @@ -67,6 +67,7 @@ impl MatchersRegistry { impl Default for MatchersRegistry { /// Creates a new matcher registry with the default matchers registered. fn default() -> Self { + #[allow(unused_mut)] let mut registry = Self::new(); #[cfg(feature = "theseus")] registry.register(|url| Ok(url == theseus::URL), theseus::matcher); diff --git a/postgresql_archive/src/repository/registry.rs b/postgresql_archive/src/repository/registry.rs index d6b19ef..b3755d6 100644 --- a/postgresql_archive/src/repository/registry.rs +++ b/postgresql_archive/src/repository/registry.rs @@ -67,6 +67,7 @@ impl RepositoryRegistry { impl Default for RepositoryRegistry { /// Creates a new repository registry with the default repositories registered. fn default() -> Self { + #[allow(unused_mut)] let mut registry = Self::new(); #[cfg(feature = "theseus")] registry.register( diff --git a/postgresql_commands/src/pg_config.rs b/postgresql_commands/src/pg_config.rs index d5521d3..a0513f2 100644 --- a/postgresql_commands/src/pg_config.rs +++ b/postgresql_commands/src/pg_config.rs @@ -9,19 +9,19 @@ use std::path::PathBuf; pub struct PgConfigBuilder { program_dir: Option, envs: Vec<(OsString, OsString)>, - bindir: Option, - docdir: Option, - htmldir: Option, - includedir: Option, - pkgincludedir: Option, - includedir_server: Option, - libdir: Option, - pkglibdir: Option, - localedir: Option, - mandir: Option, - sharedir: Option, - sysconfdir: Option, - pgxs: Option, + bindir: bool, + docdir: bool, + htmldir: bool, + includedir: bool, + pkgincludedir: bool, + includedir_server: bool, + libdir: bool, + pkglibdir: bool, + localedir: bool, + mandir: bool, + sharedir: bool, + sysconfdir: bool, + pgxs: bool, configure: bool, cc: bool, cppflags: bool, @@ -56,92 +56,92 @@ impl PgConfigBuilder { /// Set the bindir #[must_use] - pub fn bindir>(mut self, bindir: S) -> Self { - self.bindir = Some(bindir.as_ref().to_os_string()); + pub fn bindir(mut self) -> Self { + self.bindir = true; self } /// Set the docdir #[must_use] - pub fn docdir>(mut self, docdir: S) -> Self { - self.docdir = Some(docdir.as_ref().to_os_string()); + pub fn docdir(mut self) -> Self { + self.docdir = true; self } /// Set the htmldir #[must_use] - pub fn htmldir>(mut self, htmldir: S) -> Self { - self.htmldir = Some(htmldir.as_ref().to_os_string()); + pub fn htmldir(mut self) -> Self { + self.htmldir = true; self } /// Set the includedir #[must_use] - pub fn includedir>(mut self, includedir: S) -> Self { - self.includedir = Some(includedir.as_ref().to_os_string()); + pub fn includedir(mut self) -> Self { + self.includedir = true; self } /// Set the pkgincludedir #[must_use] - pub fn pkgincludedir>(mut self, pkgincludedir: S) -> Self { - self.pkgincludedir = Some(pkgincludedir.as_ref().to_os_string()); + pub fn pkgincludedir(mut self) -> Self { + self.pkgincludedir = true; self } /// Set the `includedir_server` #[must_use] - pub fn includedir_server>(mut self, includedir_server: S) -> Self { - self.includedir_server = Some(includedir_server.as_ref().to_os_string()); + pub fn includedir_server(mut self) -> Self { + self.includedir_server = true; self } /// Set the libdir #[must_use] - pub fn libdir>(mut self, libdir: S) -> Self { - self.libdir = Some(libdir.as_ref().to_os_string()); + pub fn libdir(mut self) -> Self { + self.libdir = true; self } /// Set the pkglibdir #[must_use] - pub fn pkglibdir>(mut self, pkglibdir: S) -> Self { - self.pkglibdir = Some(pkglibdir.as_ref().to_os_string()); + pub fn pkglibdir(mut self) -> Self { + self.pkglibdir = true; self } /// Set the localedir #[must_use] - pub fn localedir>(mut self, localedir: S) -> Self { - self.localedir = Some(localedir.as_ref().to_os_string()); + pub fn localedir(mut self) -> Self { + self.localedir = true; self } /// Set the mandir #[must_use] - pub fn mandir>(mut self, mandir: S) -> Self { - self.mandir = Some(mandir.as_ref().to_os_string()); + pub fn mandir(mut self) -> Self { + self.mandir = true; self } /// Set the sharedir #[must_use] - pub fn sharedir>(mut self, sharedir: S) -> Self { - self.sharedir = Some(sharedir.as_ref().to_os_string()); + pub fn sharedir(mut self) -> Self { + self.sharedir = true; self } /// Set the sysconfdir #[must_use] - pub fn sysconfdir>(mut self, sysconfdir: S) -> Self { - self.sysconfdir = Some(sysconfdir.as_ref().to_os_string()); + pub fn sysconfdir(mut self) -> Self { + self.sysconfdir = true; self } /// Set the pgxs #[must_use] - pub fn pgxs>(mut self, pgxs: S) -> Self { - self.pgxs = Some(pgxs.as_ref().to_os_string()); + pub fn pgxs(mut self) -> Self { + self.pgxs = true; self } @@ -238,69 +238,56 @@ impl CommandBuilder for PgConfigBuilder { fn get_args(&self) -> Vec { let mut args: Vec = Vec::new(); - if let Some(bindir) = &self.bindir { + if self.bindir { args.push("--bindir".into()); - args.push(bindir.into()); } - if let Some(docdir) = &self.docdir { + if self.docdir { args.push("--docdir".into()); - args.push(docdir.into()); } - if let Some(htmldir) = &self.htmldir { + if self.htmldir { args.push("--htmldir".into()); - args.push(htmldir.into()); } - if let Some(includedir) = &self.includedir { + if self.includedir { args.push("--includedir".into()); - args.push(includedir.into()); } - if let Some(pkgincludedir) = &self.pkgincludedir { + if self.pkgincludedir { args.push("--pkgincludedir".into()); - args.push(pkgincludedir.into()); } - if let Some(includedir_server) = &self.includedir_server { + if self.includedir_server { args.push("--includedir-server".into()); - args.push(includedir_server.into()); } - if let Some(libdir) = &self.libdir { + if self.libdir { args.push("--libdir".into()); - args.push(libdir.into()); } - if let Some(pkglibdir) = &self.pkglibdir { + if self.pkglibdir { args.push("--pkglibdir".into()); - args.push(pkglibdir.into()); } - if let Some(localedir) = &self.localedir { + if self.localedir { args.push("--localedir".into()); - args.push(localedir.into()); } - if let Some(mandir) = &self.mandir { + if self.mandir { args.push("--mandir".into()); - args.push(mandir.into()); } - if let Some(sharedir) = &self.sharedir { + if self.sharedir { args.push("--sharedir".into()); - args.push(sharedir.into()); } - if let Some(sysconfdir) = &self.sysconfdir { + if self.sysconfdir { args.push("--sysconfdir".into()); - args.push(sysconfdir.into()); } - if let Some(pgxs) = &self.pgxs { + if self.pgxs { args.push("--pgxs".into()); - args.push(pgxs.into()); } if self.configure { @@ -394,19 +381,19 @@ mod tests { fn test_builder() { let command = PgConfigBuilder::new() .env("PGDATABASE", "database") - .bindir("bindir") - .docdir("docdir") - .htmldir("htmldir") - .includedir("includedir") - .pkgincludedir("pkgincludedir") - .includedir_server("includedir_server") - .libdir("libdir") - .pkglibdir("pkglibdir") - .localedir("localedir") - .mandir("mandir") - .sharedir("sharedir") - .sysconfdir("sysconfdir") - .pgxs("pgxs") + .bindir() + .docdir() + .htmldir() + .includedir() + .pkgincludedir() + .includedir_server() + .libdir() + .pkglibdir() + .localedir() + .mandir() + .sharedir() + .sysconfdir() + .pgxs() .configure() .cc() .cppflags() @@ -426,7 +413,7 @@ mod tests { assert_eq!( format!( - r#"{command_prefix}"pg_config" "--bindir" "bindir" "--docdir" "docdir" "--htmldir" "htmldir" "--includedir" "includedir" "--pkgincludedir" "pkgincludedir" "--includedir-server" "includedir_server" "--libdir" "libdir" "--pkglibdir" "pkglibdir" "--localedir" "localedir" "--mandir" "mandir" "--sharedir" "sharedir" "--sysconfdir" "sysconfdir" "--pgxs" "pgxs" "--configure" "--cc" "--cppflags" "--cflags" "--cflags_sl" "--ldflags" "--ldflags_ex" "--ldflags_sl" "--libs" "--version" "--help""# + r#"{command_prefix}"pg_config" "--bindir" "--docdir" "--htmldir" "--includedir" "--pkgincludedir" "--includedir-server" "--libdir" "--pkglibdir" "--localedir" "--mandir" "--sharedir" "--sysconfdir" "--pgxs" "--configure" "--cc" "--cppflags" "--cflags" "--cflags_sl" "--ldflags" "--ldflags_ex" "--ldflags_sl" "--libs" "--version" "--help""# ), command.to_command_string() );