Skip to main content

bestool_psql/
lib.rs

1// #[doc(hidden)] items must not be used! Only pub for testing purposes.
2
3#[doc(hidden)]
4pub mod audit;
5mod colors;
6pub mod column_extractor;
7mod completer;
8mod config;
9mod input;
10mod ots;
11mod parser;
12mod query;
13#[doc(hidden)]
14pub mod repl;
15#[doc(hidden)]
16pub mod result_store;
17mod schema_cache;
18mod signals;
19#[doc(hidden)]
20pub mod snippets;
21mod table;
22mod theme;
23
24use std::sync::Arc;
25
26pub use audit::{ExportOptions, QueryOptions, export_audit_entries};
27pub use bestool_postgres::pool::PgPool;
28pub use config::{Config, SnippetLookupProvider};
29pub use signals::register_sigint_handler;
30pub use theme::Theme;
31
32/// Create a connection pool with application_name set to "bestool-psql"
33pub async fn create_pool(url: &str) -> miette::Result<PgPool> {
34	bestool_postgres::pool::create_pool(url, "bestool-psql").await
35}
36
37pub fn default_audit_dir() -> String {
38	audit::Audit::help_text_default_dir()
39}
40
41pub async fn run(pool: PgPool, mut config: Config) -> miette::Result<()> {
42	if config.audit_path.is_none() {
43		config.audit_path = Some(audit::Audit::default_path()?);
44	}
45
46	repl::run(pool, Arc::new(config)).await
47}