@@ 35,6 35,9 @@ struct Args {
/// Config file location
#[arg(short, long, default_value = "./canwa.toml")]
config: String,
+ /// Don't run the main program, useful for config validation
+ #[arg(long)]
+ dry_run: bool,
}
#[tokio::main]
@@ 56,6 59,10 @@ async fn main() {
let config: Config = Config::from_path(&args.config).await.unwrap();
let state: Arc<State> = Arc::new(State::from_config(&config).unwrap());
+ if args.dry_run {
+ std::process::exit(0);
+ }
+
let router = Router::new()
.route("/", get(|| async { "canwa" }))
.route(