oseda_cli/lib.rs
1use clap::{Parser, Subcommand};
2
3pub mod cmd;
4pub mod color;
5pub mod config;
6pub mod github;
7pub mod net;
8pub mod tags;
9pub mod template;
10
11/// Oseda Project scafolding CLI
12#[derive(Parser)]
13#[command(name = "oseda")]
14#[command(version)]
15#[command(about = "oseda project scafolding CLI", long_about = None)]
16#[command(author = "oseda.net")]
17pub struct Cli {
18 /// The subcommand to run
19 #[command(subcommand)]
20 pub command: Commands,
21}
22
23/// Oseda subcommand, represents an action to take on your Oseda project
24#[derive(Subcommand)]
25pub enum Commands {
26 /// Initialize a new Oseda project in the working directory
27 Init(cmd::init::InitOptions),
28 /// Run the Oseda project in the working directory
29 Run,
30 /// Check the Oseda project in the working directory for common errors
31 Check(cmd::check::CheckOptions),
32 /// Deploy your Oseda project to github to add to oseda.net
33 Deploy(cmd::deploy::DeployOptions),
34 /// Fork the library repository to submit your course
35 Fork,
36 /// Export the Oseda project to a PDF file
37 /// This will install the npm package `decktape`
38 /// This relies on a chromium backend, as a result, it may take a while to run
39 Export(cmd::export::ExportOptions),
40}