MCPcopy Create free account
hub / github.com/f0rr0/oliphaunt / main

Function main

src/bin/pglite_proxy.rs:26–66  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

24}
25
26fn 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
68fn parse_args() -> Result<Args> {
69 let mut root = None;

Callers

nothing calls this directly

Calls 9

by_sql_nameFunction · 0.85
tcpMethod · 0.80
unixMethod · 0.80
parse_argsFunction · 0.70
temporaryMethod · 0.45
pathMethod · 0.45
postgres_configsMethod · 0.45
extensionMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected