Create labadoor-auth, for wrapping storage backends

This commit is contained in:
George Kaklamanos 2023-11-22 18:18:51 +02:00
parent 104d8a862d
commit 5013fdcf1c
No known key found for this signature in database
GPG key ID: C0CAB8A6BDC9399D
7 changed files with 58 additions and 0 deletions

View file

@ -5,5 +5,6 @@ members = [
"labadoor-telegram", "labadoor-telegram",
"labadoor-csv", "labadoor-csv",
"labadoor", "labadoor",
"labadoor-auth",
"labadoor-acl", "labadoor-acl",
] ]

11
labadoor-auth/Cargo.toml Normal file
View file

@ -0,0 +1,11 @@
[package]
name = "labadoor-auth"
version = "0.1.0"
edition = "2021"
[dependencies]
clap = { version = "4.4.8", features = ["derive"] }
labadoor-csv = { path = "../labadoor-csv", optional = true }
[features]
csv = ["dep:labadoor-csv"]

31
labadoor-auth/src/cli.rs Normal file
View file

@ -0,0 +1,31 @@
use clap::{Parser, ValueEnum};
#[derive(Parser, Debug)]
pub struct Cli {
#[command(subcommand)]
pub command: Command,
#[arg(short, long, value_enum)]
pub backend: Backend,
}
#[derive(Parser, ValueEnum, Clone, Debug)]
pub enum Backend {
#[cfg(feature = "csv")]
CSV,
}
#[derive(Parser, Debug)]
pub enum Command {
Open(Open),
}
#[derive(Parser, Debug)]
pub struct Open {
pub method: String,
pub identifier: String,
pub resource: i8,
}
pub fn parse() -> Cli {
Cli::parse()
}

7
labadoor-auth/src/lib.rs Normal file
View file

@ -0,0 +1,7 @@
pub mod cli;
pub fn auth(i: &cli::Cli) {
match i.command {
cli::Command::Open(_) => todo!(),
};
}

View file

@ -9,6 +9,7 @@ labadoor-telegram = { path = "../labadoor-telegram", optional = true }
labadoor-matrix = { path = "../labadoor-matrix", optional = true } labadoor-matrix = { path = "../labadoor-matrix", optional = true }
labadoor-csv = { path = "../labadoor-csv", optional = true } labadoor-csv = { path = "../labadoor-csv", optional = true }
labadoor-gpio = { path = "../labadoor-gpio", optional = true } labadoor-gpio = { path = "../labadoor-gpio", optional = true }
labadoor-auth = { path = "../labadoor-auth", optional = true }
labadoor-acl = { path = "../labadoor-acl" } labadoor-acl = { path = "../labadoor-acl" }
serde = { version = "1.0.164", features = ["derive"] } serde = { version = "1.0.164", features = ["derive"] }
config = "0.13.3" config = "0.13.3"
@ -18,3 +19,4 @@ telegram = ["dep:labadoor-telegram"]
matrix = ["dep:labadoor-matrix"] matrix = ["dep:labadoor-matrix"]
csv = ["dep:labadoor-csv"] csv = ["dep:labadoor-csv"]
gpio = ["dep:labadoor-gpio"] gpio = ["dep:labadoor-gpio"]
auth = ["dep:labadoor-auth"]

View file

@ -17,6 +17,8 @@ pub enum Command {
CSV(CSV), CSV(CSV),
#[cfg(feature = "gpio")] #[cfg(feature = "gpio")]
GPIO(GPIO), GPIO(GPIO),
#[cfg(feature = "auth")]
Auth(labadoor_auth::cli::Cli),
} }
#[cfg(feature = "telegram")] #[cfg(feature = "telegram")]

View file

@ -34,5 +34,9 @@ fn main() {
let gpio = config.get::<cli::GPIO>("gpio").unwrap().to_config(); let gpio = config.get::<cli::GPIO>("gpio").unwrap().to_config();
labadoor_gpio::gpio(gpio); labadoor_gpio::gpio(gpio);
} }
#[cfg(feature = "auth")]
cli::Command::Auth(cli) => {
labadoor_auth::auth(cli);
}
} }
} }