diff --git a/Cargo.lock b/Cargo.lock index cc2af11..c65d61f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -437,6 +437,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "deranged" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" + [[package]] name = "digest" version = "0.10.7" @@ -1023,6 +1029,15 @@ dependencies = [ "libc", ] +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + [[package]] name = "object" version = "0.31.1" @@ -1779,6 +1794,7 @@ dependencies = [ "tokio", "tracing", "tracing-subscriber", + "vergen", "walkdir", ] @@ -1825,6 +1841,36 @@ dependencies = [ "once_cell", ] +[[package]] +name = "time" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea" +dependencies = [ + "deranged", + "itoa", + "libc", + "num_threads", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" + +[[package]] +name = "time-macros" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd" +dependencies = [ + "time-core", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -2056,6 +2102,17 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vergen" +version = "8.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbc5ad0d9d26b2c49a5ab7da76c3e79d3ee37e7821799f8223fcb8f2f391a2e7" +dependencies = [ + "anyhow", + "rustversion", + "time", +] + [[package]] name = "version_check" version = "0.9.4" diff --git a/Cargo.toml b/Cargo.toml index 0c2c8fa..733d014 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,6 +17,7 @@ tracing = "0.1.37" tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } [build-dependencies] +vergen = { version = "8.2.4", features = ["git", "gitcl"] } walkdir = "2.3.3" [profile.dev.package.sqlx-macros] diff --git a/build.rs b/build.rs index be80764..085da29 100644 --- a/build.rs +++ b/build.rs @@ -45,6 +45,10 @@ fn copy_static_files() { } fn main() { + let mut builder = vergen::EmitBuilder::builder(); + builder.git_describe(true, false, None); + builder.emit().unwrap(); + watch_dir(MIGRATION_DIR.as_ref()); watch_dir(STATIC_DIR.as_ref()); watch_dir(TEMPLATE_DIR.as_ref()); diff --git a/src/main.rs b/src/main.rs index af43b69..eb3db5a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,9 +7,19 @@ use axum::{extract::State, http::StatusCode, routing::get, Router}; use clap::Parser; use sqlx::SqlitePool; use state::AppState; +use tracing::info; use tracing_subscriber::filter::LevelFilter; +const NAME: &str = env!("CARGO_PKG_NAME"); +const VERSION: &str = concat!( + env!("CARGO_PKG_VERSION"), + " (", + env!("VERGEN_GIT_DESCRIBE"), + ")" +); + #[derive(Debug, clap::Parser)] +#[command(name = NAME, version = VERSION)] struct Args {} fn set_up_logging() { @@ -37,9 +47,11 @@ async fn index(State(db): State) -> Result { } async fn run() -> anyhow::Result<()> { - set_up_logging(); - let args = Args::parse(); + + set_up_logging(); + info!("You are running {NAME} {VERSION}"); + let state = AppState::new().await?; let app = Router::new()