Move the CLI to a module.

main
Tom Alexander 7 months ago
parent 1b189cf15c
commit a1f4600483
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE

@ -0,0 +1 @@
pub(crate) mod parameters;

@ -0,0 +1,47 @@
use clap::Args;
use clap::Parser;
use clap::Subcommand;
use std::path::PathBuf;
#[derive(Parser, Debug)]
#[command(name = "Writer")]
#[command(version = env!("CARGO_PKG_VERSION"))]
#[command(about = "Generate a static site.", long_about = None)]
#[command(propagate_version = true)]
pub(crate) struct Cli {
#[command(subcommand)]
pub(crate) command: Commands,
}
#[derive(Subcommand, Debug)]
pub(crate) enum Commands {
/// Initialize an empty website folder.
Init(InitArgs),
/// Build the static site.
Build(BuildArgs),
/// Add a blog post to the site.
AddPost(BuildArgs),
}
#[derive(Args, Debug)]
pub(crate) struct InitArgs {
/// Path where you want the initial writer structure to be located.
#[arg(short, long)]
pub(crate) path: PathBuf,
}
#[derive(Args, Debug)]
pub(crate) struct BuildArgs {
/// Path to the writer config file.
#[arg(short, long)]
pub(crate) config: PathBuf,
}
#[derive(Args, Debug)]
pub(crate) struct AddPostArgs {
/// Path to the writer config file.
#[arg(short, long)]
pub(crate) config: PathBuf,
}

@ -1,9 +1,11 @@
use clap::Args;
use clap::Parser;
use clap::Subcommand;
use std::path::PathBuf;
use std::process::ExitCode;
use clap::Parser;
use self::cli::parameters::Cli;
use self::cli::parameters::Commands;
mod cli;
fn main() -> Result<ExitCode, Box<dyn std::error::Error>> {
let rt = tokio::runtime::Runtime::new()?;
rt.block_on(async {
@ -21,46 +23,3 @@ async fn main_body() -> Result<ExitCode, Box<dyn std::error::Error>> {
};
Ok(ExitCode::SUCCESS)
}
#[derive(Parser, Debug)]
#[command(name = "Writer")]
#[command(version = env!("CARGO_PKG_VERSION"))]
#[command(about = "Generate a static site.", long_about = None)]
#[command(propagate_version = true)]
struct Cli {
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand, Debug)]
enum Commands {
/// Initialize an empty website folder.
Init(InitArgs),
/// Build the static site.
Build(BuildArgs),
/// Add a blog post to the site.
AddPost(BuildArgs),
}
#[derive(Args, Debug)]
struct InitArgs {
/// Path where you want the initial writer structure to be located.
#[arg(short, long)]
path: PathBuf,
}
#[derive(Args, Debug)]
struct BuildArgs {
/// Path to the writer config file.
#[arg(short, long)]
config: PathBuf,
}
#[derive(Args, Debug)]
struct AddPostArgs {
/// Path to the writer config file.
#[arg(short, long)]
config: PathBuf,
}

Loading…
Cancel
Save