()
| 24 | } |
| 25 | |
| 26 | fn main() -> Result<()> { |
| 27 | let args = parse_args()?; |
| 28 | let mut builder = if args.temporary { |
| 29 | PgliteServer::builder().temporary() |
| 30 | } else if let Some(root) = args.root { |
| 31 | PgliteServer::builder().path(root) |
| 32 | } else { |
| 33 | PgliteServer::builder().path("./.pglite") |
| 34 | }; |
| 35 | |
| 36 | builder = match args.bind { |
| 37 | Bind::Tcp(addr) => builder.tcp(addr), |
| 38 | #[cfg(unix)] |
| 39 | Bind::Unix(path) => builder.unix(path), |
| 40 | }; |
| 41 | builder = builder.postgres_configs(args.postgres_config); |
| 42 | |
| 43 | #[cfg(feature = "extensions")] |
| 44 | { |
| 45 | for name in &args.extensions { |
| 46 | let extension = extensions::by_sql_name(name) |
| 47 | .ok_or_else(|| anyhow::anyhow!("unknown bundled extension: {name}"))?; |
| 48 | builder = builder.extension(extension); |
| 49 | } |
| 50 | } |
| 51 | #[cfg(not(feature = "extensions"))] |
| 52 | if !args.extensions.is_empty() { |
| 53 | bail!("this pglite-proxy build was compiled without bundled extension support"); |
| 54 | } |
| 55 | |
| 56 | let server = builder.start()?; |
| 57 | if args.print_uri { |
| 58 | println!("{}", server.database_url()); |
| 59 | } else { |
| 60 | eprintln!("listening: {}", server.database_url()); |
| 61 | } |
| 62 | |
| 63 | loop { |
| 64 | std::thread::park(); |
| 65 | } |
| 66 | } |
| 67 | |
| 68 | fn parse_args() -> Result<Args> { |
| 69 | let mut root = None; |
nothing calls this directly
no test coverage detected