From 32724d28eeb7eb5f9e695993e792e79ba61be933 Mon Sep 17 00:00:00 2001 From: Picnoir Date: Wed, 3 Apr 2024 11:20:31 +0200 Subject: feat(users/picnoir/tvix-daemon): add log verbosity flag Adding a verbosity flag available through the CLI/ENV variable. Change-Id: If04cc2e6e26e7cb3c2df7821fce222da2b85a95a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11349 Reviewed-by: flokli Tested-by: BuildkiteCI --- users/picnoir/tvix-daemon/Cargo.nix | 21 +++++---------------- users/picnoir/tvix-daemon/Cargo.toml | 2 +- users/picnoir/tvix-daemon/src/main.rs | 15 ++++++++++++--- 3 files changed, 18 insertions(+), 20 deletions(-) (limited to 'users/picnoir/tvix-daemon') diff --git a/users/picnoir/tvix-daemon/Cargo.nix b/users/picnoir/tvix-daemon/Cargo.nix index 12db15721c03..14fd16afb03d 100644 --- a/users/picnoir/tvix-daemon/Cargo.nix +++ b/users/picnoir/tvix-daemon/Cargo.nix @@ -1,5 +1,5 @@ -# This file was @generated by crate2nix 0.13.0 with the command: -# "generate" "--all-features" +# This file was @generated by crate2nix 0.12.0 with the command: +# "generate" # See https://github.com/kolloch/crate2nix for more info. { nixpkgs ? @@ -825,7 +825,7 @@ rec { "usage" = [ "clap_builder/usage" ]; "wrap_help" = [ "clap_builder/wrap_help" ]; }; - resolvedDefaultFeatures = [ "color" "default" "derive" "error-context" "help" "std" "suggestions" "usage" ]; + resolvedDefaultFeatures = [ "color" "default" "derive" "env" "error-context" "help" "std" "suggestions" "usage" ]; }; "clap_builder" = rec { crateName = "clap_builder"; @@ -864,7 +864,7 @@ rec { "unstable-v5" = [ "deprecated" ]; "wrap_help" = [ "help" "dep:terminal_size" ]; }; - resolvedDefaultFeatures = [ "color" "error-context" "help" "std" "suggestions" "usage" ]; + resolvedDefaultFeatures = [ "color" "env" "error-context" "help" "std" "suggestions" "usage" ]; }; "clap_derive" = rec { crateName = "clap_derive"; @@ -4160,7 +4160,7 @@ rec { { name = "clap"; packageId = "clap"; - features = [ "derive" ]; + features = [ "derive" "env" ]; } { name = "nix-compat"; @@ -5205,7 +5205,6 @@ rec { ( _: { buildTests = true; - release = false; } ); # If the user hasn't set any pre/post commands, we don't want to @@ -5230,16 +5229,6 @@ rec { # recreate a file hierarchy as when running tests with cargo # the source for test data - # It's necessary to locate the source in $NIX_BUILD_TOP/source/ - # instead of $NIX_BUILD_TOP/ - # because we compiled those test binaries in the former and not the latter. - # So all paths will expect source tree to be there and not in the build top directly. - # For example: $NIX_BUILD_TOP := /build in general, if you ask yourself. - # TODO(raitobezarius): I believe there could be more edge cases if `crate.sourceRoot` - # do exist but it's very hard to reason about them, so let's wait until the first bug report. - mkdir -p source/ - cd source/ - ${pkgs.buildPackages.xorg.lndir}/bin/lndir ${crate.src} # build outputs diff --git a/users/picnoir/tvix-daemon/Cargo.toml b/users/picnoir/tvix-daemon/Cargo.toml index da2ef6b09882..00a7b7c10ada 100644 --- a/users/picnoir/tvix-daemon/Cargo.toml +++ b/users/picnoir/tvix-daemon/Cargo.toml @@ -10,7 +10,7 @@ tokio = { version = "1.36.0", features = ["full"] } tracing-subscriber = "0.3.18" tracing = "0.1.40" anyhow = "1.0.81" -clap = { version = "4.5.3", features = ["derive"] } +clap = { version = "4.5.3", features = ["derive", "env"] } [dev-dependencies] tokio-test = "0.4.4" diff --git a/users/picnoir/tvix-daemon/src/main.rs b/users/picnoir/tvix-daemon/src/main.rs index e302b83fcbf9..7b1b735baa8c 100644 --- a/users/picnoir/tvix-daemon/src/main.rs +++ b/users/picnoir/tvix-daemon/src/main.rs @@ -2,7 +2,7 @@ use anyhow::anyhow; use clap::Parser; use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio_listener::{self, SystemOptions, UserOptions}; -use tracing::{debug, error, info, instrument}; +use tracing::{debug, error, info, instrument, Level}; use nix_compat::wire::{bytes, primitive, worker_protocol}; @@ -11,14 +11,23 @@ struct Cli { /// Listening unix socket path #[arg(short, long)] socket: Option, + /// Log verbosity level. Can be "error", "warn", "info", "debug", "trace", or a number 1-5 + #[arg(short, long, env)] + verbosity: Option, } #[tokio::main] #[instrument()] async fn main() { - tracing_subscriber::fmt().compact().try_init().unwrap(); let args = Cli::parse(); - + tracing_subscriber::fmt() + .compact() + .with_max_level( + args.verbosity + .unwrap_or_else(|| panic!("Can't parse log verbosity")), + ) + .try_init() + .unwrap(); info!("Started Tvix daemon"); let addr = args .socket -- cgit 1.4.1