summaryrefslogtreecommitdiff
path: root/src/cmds/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmds/cmd')
-rw-r--r--src/cmds/cmd/helpdoc.rs6
-rw-r--r--src/cmds/cmd/helpdoc_list.rs48
2 files changed, 51 insertions, 3 deletions
diff --git a/src/cmds/cmd/helpdoc.rs b/src/cmds/cmd/helpdoc.rs
index 8b692ee..bebd08c 100644
--- a/src/cmds/cmd/helpdoc.rs
+++ b/src/cmds/cmd/helpdoc.rs
@@ -9,7 +9,7 @@ use crate::{
cmd_system::JVCommandContext,
errors::{CmdExecuteError, CmdPrepareError},
},
- helpdoc::helpdoc_viewer,
+ helpdoc::{DEFAULT_HELPDOC, helpdoc_viewer},
},
};
use cmd_system_macros::exec;
@@ -22,13 +22,13 @@ type In = JVHelpdocInput;
type Collect = JVEmptyCollect;
async fn help_str() -> String {
- helpdoc_viewer::display("Welcome_To_JVCS").await;
+ helpdoc_viewer::display(DEFAULT_HELPDOC).await;
String::new()
}
async fn prepare(args: &Arg, ctx: &JVCommandContext) -> Result<In, CmdPrepareError> {
Ok(JVHelpdocInput {
- name: args.doc_name.clone(),
+ name: args.doc_name.clone().unwrap_or(DEFAULT_HELPDOC.to_string()),
lang: ctx.lang.clone(),
})
}
diff --git a/src/cmds/cmd/helpdoc_list.rs b/src/cmds/cmd/helpdoc_list.rs
new file mode 100644
index 0000000..b4b05cf
--- /dev/null
+++ b/src/cmds/cmd/helpdoc_list.rs
@@ -0,0 +1,48 @@
+use crate::{
+ cmd_output,
+ cmds::{
+ arg::empty::JVEmptyArgument, collect::empty::JVEmptyCollect, r#in::empty::JVEmptyInput,
+ out::helpdocs::JVHelpdocsOutput,
+ },
+ systems::{
+ cmd::{
+ cmd_system::JVCommandContext,
+ errors::{CmdExecuteError, CmdPrepareError},
+ },
+ helpdoc::{DEFAULT_HELPDOC, get_helpdoc_list, helpdoc_viewer},
+ },
+};
+use cmd_system_macros::exec;
+use std::any::TypeId;
+
+pub struct JVHelpdocListCommand;
+type Cmd = JVHelpdocListCommand;
+type Arg = JVEmptyArgument;
+type In = JVEmptyInput;
+type Collect = JVEmptyCollect;
+
+async fn help_str() -> String {
+ helpdoc_viewer::display(DEFAULT_HELPDOC).await;
+ String::new()
+}
+
+async fn prepare(_args: &Arg, _ctx: &JVCommandContext) -> Result<In, CmdPrepareError> {
+ Ok(JVEmptyInput)
+}
+
+async fn collect(_args: &Arg, _ctx: &JVCommandContext) -> Result<Collect, CmdPrepareError> {
+ Ok(JVEmptyCollect)
+}
+
+#[exec]
+async fn exec(
+ _input: In,
+ _collect: Collect,
+) -> Result<(Box<dyn std::any::Any + Send + 'static>, TypeId), CmdExecuteError> {
+ let output = JVHelpdocsOutput {
+ names: get_helpdoc_list().into_iter().map(String::from).collect(),
+ };
+ cmd_output!(JVHelpdocsOutput => output)
+}
+
+crate::command_template!();