diff --git a/src/cli/mod.rs b/src/cli/mod.rs new file mode 100644 index 0000000..550924e --- /dev/null +++ b/src/cli/mod.rs @@ -0,0 +1 @@ +pub(crate) mod parameters; diff --git a/src/cli/parameters.rs b/src/cli/parameters.rs new file mode 100644 index 0000000..b96dc27 --- /dev/null +++ b/src/cli/parameters.rs @@ -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, +} diff --git a/src/main.rs b/src/main.rs index 040230e..22ab9b7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -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> { let rt = tokio::runtime::Runtime::new()?; rt.block_on(async { @@ -21,46 +23,3 @@ async fn main_body() -> Result> { }; 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, -}