From 1f3f769b53e0a5e273138dc3a47c61125b28fed6 Mon Sep 17 00:00:00 2001 From: KtorZ Date: Fri, 16 Dec 2022 18:34:05 +0100 Subject: [PATCH] Add command 'docs' for generating project documentation. --- crates/cli/src/cmd/docs.rs | 22 ++++++++++++++++++++++ crates/cli/src/cmd/mod.rs | 1 + crates/cli/src/lib.rs | 13 +++++++++++++ crates/cli/src/main.rs | 4 +++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 crates/cli/src/cmd/docs.rs diff --git a/crates/cli/src/cmd/docs.rs b/crates/cli/src/cmd/docs.rs new file mode 100644 index 00000000..da08c440 --- /dev/null +++ b/crates/cli/src/cmd/docs.rs @@ -0,0 +1,22 @@ +use std::path::PathBuf; + +#[derive(clap::Args)] +/// Build an Aiken project +pub struct Args { + /// Path to project + #[clap(short, long)] + directory: Option, + + /// Output directory for the documentation + #[clap(short = 'o', long)] + destination: Option, +} + +pub fn exec( + Args { + directory, + destination, + }: Args, +) -> miette::Result<()> { + crate::with_project(directory, |p| p.docs(destination.clone())) +} diff --git a/crates/cli/src/cmd/mod.rs b/crates/cli/src/cmd/mod.rs index 75b5fe74..b3b837cb 100644 --- a/crates/cli/src/cmd/mod.rs +++ b/crates/cli/src/cmd/mod.rs @@ -1,5 +1,6 @@ pub mod build; pub mod check; +pub mod docs; pub mod error; pub mod fmt; pub mod lsp; diff --git a/crates/cli/src/lib.rs b/crates/cli/src/lib.rs index dc195f14..20bf671c 100644 --- a/crates/cli/src/lib.rs +++ b/crates/cli/src/lib.rs @@ -68,6 +68,19 @@ impl telemetry::EventListener for Terminal { root.to_str().unwrap_or("").bright_blue() ); } + telemetry::Event::GeneratingDocumentation { + name, + version, + root, + } => { + println!( + "{} {} {} ({})", + "Generating documentation".bold().purple(), + name.bold(), + version, + root.to_str().unwrap_or("").bright_blue() + ); + } telemetry::Event::ParsingProjectFiles => { println!("{}", "...Parsing project files".bold().purple()); } diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index d624ce6d..9413416f 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -1,4 +1,4 @@ -use aiken::cmd::{build, check, fmt, lsp, new, tx, uplc}; +use aiken::cmd::{build, check, docs, fmt, lsp, new, tx, uplc}; use clap::Parser; /// Aiken: a smart-contract language and toolchain for Cardano @@ -11,6 +11,7 @@ pub enum Cmd { Fmt(fmt::Args), Build(build::Args), Check(check::Args), + Docs(docs::Args), #[clap(hide = true)] Lsp(lsp::Args), @@ -34,6 +35,7 @@ fn main() -> miette::Result<()> { Cmd::New(args) => new::exec(args), Cmd::Fmt(args) => fmt::exec(args), Cmd::Build(args) => build::exec(args), + Cmd::Docs(args) => docs::exec(args), Cmd::Check(args) => check::exec(args), Cmd::Lsp(args) => lsp::exec(args), Cmd::Tx(sub_cmd) => tx::exec(sub_cmd),