Work on config subcommand

This commit is contained in:
Daniel Flanagan 2024-04-18 08:47:23 -05:00
parent 6dca01fed7
commit 77cabd9e3e
2 changed files with 35 additions and 4 deletions

View file

@ -1,5 +1,6 @@
use crate::cli::prelude::*; use crate::cli::prelude::*;
mod config;
mod gitlab; mod gitlab;
mod jira; mod jira;
mod prelude; mod prelude;
@ -13,16 +14,16 @@ pub struct Cli {
#[command(subcommand)] #[command(subcommand)]
pub command: Commands, pub command: Commands,
/// The directory to write log files (defaults to $XDG_CACHE_HOME/taskr/logs)
#[arg(long, default_value = None)]
pub logs_directory: Option<String>,
/// Define which tracing values are logged /// Define which tracing values are logged
/// See https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html /// See https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html
/// for details /// for details
#[arg(long, default_value = None)] #[arg(long, default_value = None)]
pub tracing_env_filter: Option<String>, pub tracing_env_filter: Option<String>,
/// The directory to write log files (defaults to $XDG_CACHE_HOME/taskr/logs)
#[arg(long, default_value = None)]
pub logs_directory: Option<String>,
/// The directory that data is stored in (defaults to $XDG_DATA_HOME/taskr/data) /// The directory that data is stored in (defaults to $XDG_DATA_HOME/taskr/data)
#[arg(long, default_value = None)] #[arg(long, default_value = None)]
pub data_directory: Option<String>, pub data_directory: Option<String>,
@ -58,6 +59,10 @@ pub enum Commands {
/// Interact with the configured GitLab endpoint /// Interact with the configured GitLab endpoint
#[command(subcommand)] #[command(subcommand)]
Gitlab(gitlab::Command), Gitlab(gitlab::Command),
/// Interact with the configured GitLab endpoint
#[command(subcommand)]
Config(config::Command),
} }
#[derive(Args)] #[derive(Args)]

26
src/cli/config.rs Normal file
View file

@ -0,0 +1,26 @@
use crate::cli::prelude::*;
#[derive(Subcommand)]
pub enum Command {
Show,
}
impl Command {
pub async fn exec(&self, tasks: SharedTasks) -> Result<()> {
match self {
Command::Show => self.show().await,
}
}
pub async fn show(&self) -> Result<()> {}
}
#[derive(Parser)]
pub struct MeArgs {}
impl MeArgs {
pub async fn me(&self, tasks: SharedTasks) -> Result<()> {
println!("{:#?}", tasks.gitlab()?.me().await?);
Ok(())
}
}