thot_cli/commands/container/
mod.rs1use crate::result::Result;
2use crate::types::ResourcePathType;
3use clap::{Args, Subcommand};
4use std::path::PathBuf;
5mod commands;
6
7pub fn main(args: ContainerArgs, verbose: bool) -> Result {
8 match args.command {
9 Command::Init(init_args) => commands::init(init_args, verbose),
10 Command::New(new_args) => commands::new(new_args, verbose),
11 Command::AddChild(add_args) => commands::add_child(add_args, verbose),
12 Command::NewChild(new_args) => commands::new_child(new_args, verbose),
13 Command::AddAsset(add_args) => commands::add_asset(add_args, verbose),
14 Command::AddScript(add_args) => commands::add_script(add_args, verbose),
15 }
16}
17
18#[derive(Debug, Args)]
19pub struct ContainerArgs {
20 #[clap(subcommand)]
21 command: Command,
22}
23
24#[derive(Debug, Subcommand)]
25enum Command {
26 Init(InitArgs),
27 New(NewArgs),
28 AddChild(AddChildArgs),
29 NewChild(NewChildArgs),
30 AddAsset(AddAssetArgs),
31 AddScript(AddScriptArgs),
32}
33
34#[derive(Debug, Args)]
35pub struct InitArgs {
36 #[clap(short, long, parse(from_os_str))]
37 path: Option<PathBuf>,
38}
39
40#[derive(Debug, Args)]
41pub struct NewArgs {
42 #[clap(parse(from_os_str))]
43 name: PathBuf,
44}
45
46#[derive(Debug, Args)]
47pub struct AddChildArgs {
48 #[clap(parse(from_os_str))]
49 path: PathBuf,
50
51 #[clap(short, long, parse(from_os_str))]
52 parent: Option<PathBuf>,
53}
54
55#[derive(Debug, Args)]
56pub struct NewChildArgs {
57 #[clap(parse(from_os_str))]
58 path: PathBuf,
59
60 #[clap(short, long, parse(from_os_str))]
61 parent: Option<PathBuf>,
62}
63
64#[derive(Debug, Args)]
65pub struct AddAssetArgs {
66 #[clap(parse(from_os_str))]
67 path: PathBuf,
68
69 #[clap(short, long, parse(from_os_str))]
70 parent: Option<PathBuf>,
71}
72
73#[derive(Debug, Args)]
74pub struct AddScriptArgs {
75 #[clap(parse(from_os_str))]
76 path: PathBuf,
77
78 #[clap(short, long, parse(from_os_str))]
79 container: Option<PathBuf>,
80
81 #[clap(short, long)]
82 priority: Option<i32>,
83
84 #[clap(long)]
85 autorun: Option<bool>,
86
87 #[clap(long)]
89 register: bool,
90
91 #[clap(long, value_enum)]
93 path_type: Option<ResourcePathType>,
94}