summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cli.rs40
1 files changed, 19 insertions, 21 deletions
diff --git a/src/cli.rs b/src/cli.rs
index 2fd296f..1a9998f 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -5,12 +5,14 @@ use serde::Serialize;
use std::path::PathBuf;
use tracing::Level;
-/// Simple program to manage projects and ssh hosts using tmux
+/// Tool for managing tmux sessions
#[derive(Debug, Clone, Default, Parser, Serialize)]
#[command(author, version, about)]
#[serde(into = "Config")]
pub struct Cli {
- /// Path to directories
+ /// Directory to search.
+ ///
+ /// Directories are searched recursively based on `--max-depth`.
pub(crate) paths: Vec<PathBuf>,
/// Max depth to recurse.
@@ -21,18 +23,13 @@ pub struct Cli {
/// Recurse into hidden directories.
///
- /// Include hidden directories when traversing directories. (default: hidden directories
- /// are skipped). A Directory is considered to be hidden if its name starts with a `.`
- /// sign (dot). If `max-depth` is set to 0, this has no effect (As no recursion happens).
- #[arg(long)]
+ /// Traverse into hidden directories while searching. A directory is considered hidden
+ /// if its name starts with a `.` sign (dot). If `--max-depth` is 0, this has no effect.
+ #[arg(long, default_value_t)]
pub(crate) hidden: bool,
#[command(flatten)]
pub verbose: Verbosity,
-
- /// Connect to ssh host
- #[arg(short, long)]
- pub ssh: Option<String>,
}
impl Provider for Cli {
@@ -58,15 +55,12 @@ impl From<Cli> for Config {
})
.collect();
- let paths = crate::paths::Config { paths };
- let logging = crate::logging::Config {
- stdout: value.verbose.into(),
- ..Default::default()
- };
-
Config {
- paths,
- logging,
+ paths: crate::paths::Config { paths },
+ logging: crate::logging::Config {
+ stdout: value.verbose.into(),
+ ..Default::default()
+ },
..Default::default()
}
}
@@ -74,11 +68,15 @@ impl From<Cli> for Config {
#[derive(Debug, Default, Clone, Args)]
pub struct Verbosity {
- /// Print additional information per occurrence
- #[arg(short, long, action = clap::ArgAction::Count, conflicts_with = "quiet")]
+ /// Print additional information per occurrence.
+ ///
+ /// Conflicts with `--quiet`.
+ #[arg(short, long, global = true, action = clap::ArgAction::Count, conflicts_with = "quiet")]
pub verbose: u8,
- /// Suppress all output
+ /// Suppress all output.
+ ///
+ /// Conflicts with `--verbose`.
#[arg(short, long, global = true, conflicts_with = "verbose")]
pub quiet: bool,
}