eska_presentation/arguments/project/
init.rs1use super::artifact::{self, PlatformArgs};
4use crate::localization::Localizer;
5use clap::{ArgAction, Args};
6use std::path::PathBuf;
7
8#[derive(Debug, Args)]
9pub struct InitArgs {
10 #[arg(default_value = ".")]
11 pub path: PathBuf,
12 #[arg(long)]
13 pub application: Option<String>,
14 #[arg(long)]
15 pub source: Option<PathBuf>,
16 #[arg(long)]
17 pub name: Option<String>,
18 #[arg(long)]
19 pub workflow: Option<String>,
20 #[arg(long)]
21 pub no_vcs: bool,
22 #[command(flatten)]
23 pub platform: PlatformArgs,
24 #[arg(short, long, action = ArgAction::Help)]
25 pub help: Option<bool>,
26}
27
28pub fn localize(command: clap::Command, localizer: &Localizer) -> clap::Command {
30 artifact::localize(command, localizer)
31 .mut_arg("application", |arg| {
32 arg.help(localizer.text("workspace-onboarding-application-help"))
33 })
34 .mut_arg("platform_version", |arg| {
35 arg.help(localizer.text("init-platform-version-help"))
36 })
37 .about(localizer.text("init-about"))
38 .override_usage(localizer.text("init-usage"))
39 .help_template(format!(
40 "{{about-with-newline}}\n{}: {{usage}}\n\n{}:\n{{positionals}}\n\n{}:\n{{options}}",
41 localizer.text("cli-usage"),
42 localizer.text("cli-arguments"),
43 localizer.text("cli-options")
44 ))
45 .mut_arg("path", |arg| {
46 arg.help(localizer.text("init-path-help"))
47 .value_name(localizer.text("cli-project-dir-value"))
48 .hide_default_value(true)
49 })
50 .mut_arg("source", |arg| {
51 arg.help(localizer.text("init-source-help"))
52 .value_name(localizer.text("cli-project-dir-value"))
53 })
54 .mut_arg("name", |arg| {
55 arg.help(localizer.text("init-name-help"))
56 .value_name(localizer.text("init-name-value"))
57 })
58 .mut_arg("workflow", |arg| {
59 arg.help(localizer.text("new-workflow-help"))
60 .value_name(localizer.text("new-workflow-value"))
61 })
62 .mut_arg("no_vcs", |arg| arg.help(localizer.text("new-no-vcs-help")))
63 .mut_arg("help", |arg| arg.help(localizer.text("cli-help")))
64}