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