Add cli options and move structs in separate file
This commit is contained in:
parent
1eef68f859
commit
c7dcef1cd1
2 changed files with 45 additions and 24 deletions
39
labadoor/src/cli.rs
Normal file
39
labadoor/src/cli.rs
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
use clap::Parser;
|
||||||
|
|
||||||
|
#[derive(Parser, Debug)]
|
||||||
|
pub struct Cli {
|
||||||
|
#[command(subcommand)]
|
||||||
|
pub command: Command,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Parser, Debug)]
|
||||||
|
pub enum Command {
|
||||||
|
#[cfg(feature = "telegram")]
|
||||||
|
Telegram(Telegram),
|
||||||
|
#[cfg(feature = "matrix")]
|
||||||
|
Matrix(Matrix),
|
||||||
|
#[cfg(feature = "csv")]
|
||||||
|
CSV,
|
||||||
|
#[cfg(feature = "gpio")]
|
||||||
|
GPIO,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "telegram")]
|
||||||
|
#[derive(Parser, Debug)]
|
||||||
|
pub struct Telegram {
|
||||||
|
#[clap(short, long)]
|
||||||
|
pub token: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "matrix")]
|
||||||
|
#[derive(Parser, Debug)]
|
||||||
|
pub struct Matrix {
|
||||||
|
#[clap(short, long)]
|
||||||
|
pub username: Option<String>,
|
||||||
|
#[clap(short, long)]
|
||||||
|
pub password: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn parse() -> Cli {
|
||||||
|
Cli::parse()
|
||||||
|
}
|
|
@ -1,40 +1,22 @@
|
||||||
use clap::Parser;
|
mod cli;
|
||||||
|
|
||||||
#[derive(Parser, Debug)]
|
|
||||||
struct Cli {
|
|
||||||
#[command(subcommand)]
|
|
||||||
command: Command,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Parser, Debug)]
|
|
||||||
enum Command {
|
|
||||||
#[cfg(feature = "telegram")]
|
|
||||||
Telegram,
|
|
||||||
#[cfg(feature = "matrix")]
|
|
||||||
Matrix,
|
|
||||||
#[cfg(feature = "csv")]
|
|
||||||
CSV,
|
|
||||||
#[cfg(feature = "gpio")]
|
|
||||||
GPIO,
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let cli = Cli::parse();
|
let cli = cli::parse();
|
||||||
match &cli.command {
|
match &cli.command {
|
||||||
#[cfg(feature = "telegram")]
|
#[cfg(feature = "telegram")]
|
||||||
Command::Telegram => {
|
cli::Command::Telegram(_) => {
|
||||||
labadoor_telegram::main();
|
labadoor_telegram::main();
|
||||||
}
|
}
|
||||||
#[cfg(feature = "matrix")]
|
#[cfg(feature = "matrix")]
|
||||||
Command::Matrix => {
|
cli::Command::Matrix(_) => {
|
||||||
labadoor_matrix::main();
|
labadoor_matrix::main();
|
||||||
}
|
}
|
||||||
#[cfg(feature = "csv")]
|
#[cfg(feature = "csv")]
|
||||||
Command::CSV => {
|
cli::Command::CSV => {
|
||||||
labadoor_csv::main();
|
labadoor_csv::main();
|
||||||
}
|
}
|
||||||
#[cfg(feature = "gpio")]
|
#[cfg(feature = "gpio")]
|
||||||
Command::GPIO => {
|
cli::Command::GPIO => {
|
||||||
labadoor_gpio::main();
|
labadoor_gpio::main();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue