This commit is contained in:
askiiart 2024-12-22 18:26:40 -06:00
parent 5b035fe12c
commit 14b4f08147
Signed by untrusted user who does not match committer: askiiart
GPG key ID: EA85979611654C30
3 changed files with 50 additions and 29 deletions

32
docs/cli-arguments.md Normal file
View file

@ -0,0 +1,32 @@
# CLI Arguments
Add `-h` or `--help` to any subcommand to view its help.
## Run (`run`)
```txt
Usage: gregory run [OPTIONS]
```
**Options:**
- `-c`, `--config`: Path to the config file; default: `gregory.yml`
<!-- - `-d`, `--daemonize`: Whether to daemonize the program - not yet supported -->
## Generate shell completions `gen-completion`
```txt
Usage: gregory gen-completion [OPTIONS] <COMMAND>
```
**Commands:**
- bash
- zsh
- fish
- elvish
- powershell
**Options:**
- `-b`, `--binary-name`: The name of the binary; default: `gregory`

View file

@ -13,36 +13,26 @@ pub enum Commands {
GenCompletion { GenCompletion {
#[command(subcommand)] #[command(subcommand)]
shell: ShellCommands, shell: ShellCommands,
#[arg(short, long, default_value = "gregory")]
binary_name: String,
}, },
///Runs it ///Runs it
Run { Run {
#[arg(short, long)] ///Path to the config file
#[arg(short, long, default_value = "gregory.yml")]
config: String, config: String,
/* Not yet supported
#[arg(short, long)] #[arg(short, long)]
daemonize: bool, daemonize: bool,
*/
}, },
} }
#[derive(Subcommand, Debug)] #[derive(Subcommand, Debug)]
pub enum ShellCommands { pub enum ShellCommands {
Bash { Bash,
#[arg(short, long, default_value = "gregory")] Zsh,
binary_name: String, Fish,
}, Elvish,
Zsh { Powershell,
#[arg(short, long, default_value = "gregory")]
binary_name: String,
},
Fish {
#[arg(short, long, default_value = "gregory")]
binary_name: String,
},
Elvish {
#[arg(short, long, default_value = "gregory")]
binary_name: String,
},
PowerShell {
#[arg(short, long, default_value = "gregory")]
binary_name: String,
},
} }

View file

@ -12,26 +12,25 @@ fn main() {
let cli = Cli::parse(); let cli = Cli::parse();
match cli.command { match cli.command {
Commands::GenCompletion { shell } => match shell { Commands::GenCompletion { shell, binary_name } => match shell {
ShellCommands::Bash { binary_name } => { ShellCommands::Bash => {
generate(Bash, &mut Cli::command(), binary_name, &mut stdout()); generate(Bash, &mut Cli::command(), binary_name, &mut stdout());
} }
ShellCommands::Zsh { binary_name } => { ShellCommands::Zsh => {
generate(Zsh, &mut Cli::command(), binary_name, &mut stdout()); generate(Zsh, &mut Cli::command(), binary_name, &mut stdout());
} }
ShellCommands::Fish { binary_name } => { ShellCommands::Fish => {
generate(Fish, &mut Cli::command(), binary_name, &mut stdout()); generate(Fish, &mut Cli::command(), binary_name, &mut stdout());
} }
ShellCommands::Elvish { binary_name } => { ShellCommands::Elvish => {
generate(Elvish, &mut Cli::command(), binary_name, &mut stdout()); generate(Elvish, &mut Cli::command(), binary_name, &mut stdout());
} }
ShellCommands::PowerShell { binary_name } => { ShellCommands::Powershell => {
generate(PowerShell, &mut Cli::command(), binary_name, &mut stdout()); generate(PowerShell, &mut Cli::command(), binary_name, &mut stdout());
} }
}, },
Commands::Run { config, daemonize } => { Commands::Run { config} => {
println!("{}", config); println!("{}", config);
println!("{}", daemonize)
} }
} }
} }