Compare commits

...

2 Commits

Author SHA1 Message Date
abe6ff58ca feat: support configuring the EnvFilter for tracing 2026-03-23 01:23:08 -04:00
949ba4c2ed chore: remove unused import 2026-03-20 15:12:01 -04:00

View File

@@ -4,10 +4,8 @@ use opendal::{IntoOperatorUri, Operator, OperatorUri};
use secrecy::{ExposeSecret, SecretString}; use secrecy::{ExposeSecret, SecretString};
use snafu::Snafu; use snafu::Snafu;
use std::{fmt::Debug, str::FromStr}; use std::{fmt::Debug, str::FromStr};
use tracing_subscriber::fmt::format::FmtSpan; use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan};
use twilight_gateway::{ use twilight_gateway::{Event, EventTypeFlags, Intents, Shard, ShardId, StreamExt};
Event, EventTypeFlags, Intents, Shard, ShardId, StreamExt, error::ReceiveMessageErrorType,
};
use twilight_model::id::{Id, marker::UserMarker}; use twilight_model::id::{Id, marker::UserMarker};
#[derive(Clone)] #[derive(Clone)]
@@ -46,7 +44,7 @@ impl Debug for OpendalOperator {
} }
#[derive(Debug, Parser)] #[derive(Debug, Parser)]
struct Args { struct AppArgs {
#[arg(long, env)] #[arg(long, env)]
discord_token: SecretString, discord_token: SecretString,
@@ -57,26 +55,47 @@ struct Args {
bot_owner: Id<UserMarker>, bot_owner: Id<UserMarker>,
} }
#[derive(Parser)]
struct LoggingArgs {
#[arg(long = "logging-directives", env = "RUST_LOG", default_value = "info")]
env_filter: EnvFilter,
}
#[derive(Parser)]
struct Args {
#[clap(flatten)]
app_args: AppArgs,
#[clap(flatten)]
logging_args: LoggingArgs,
}
#[derive(Debug, Snafu)] #[derive(Debug, Snafu)]
enum MainError {} enum MainError {}
#[snafu::report] #[snafu::report]
#[tokio::main] #[tokio::main]
async fn main() -> Result<(), MainError> { async fn main() -> Result<(), MainError> {
let Args {
logging_args,
app_args,
} = Parser::parse();
let LoggingArgs { env_filter } = logging_args;
tracing_subscriber::fmt() tracing_subscriber::fmt()
.pretty() .pretty()
.with_env_filter(env_filter)
.with_span_events(FmtSpan::NEW | FmtSpan::CLOSE) .with_span_events(FmtSpan::NEW | FmtSpan::CLOSE)
.init(); .init();
let args = Parser::parse(); tracing::debug!(?app_args, "using");
tracing::debug!(?args, "using"); let AppArgs {
let Args {
discord_token, discord_token,
storage, storage,
bot_owner, bot_owner,
} = args; } = app_args;
rustls::crypto::aws_lc_rs::default_provider() rustls::crypto::aws_lc_rs::default_provider()
.install_default() .install_default()