aboutsummaryrefslogtreecommitdiff
path: root/src/cli.rs
diff options
context:
space:
mode:
author[object Object] <max@bossi.ng>2025-07-16 11:51:18 +0200
committerGitHub <noreply@github.com>2025-07-16 11:51:18 +0200
commitb284510c1b66c9b830883d04097239756694221c (patch)
treed96c3975d78c4cf2ba0203e89d8d3bf8d56155dc /src/cli.rs
parentc40e7f89ecacce4fccf3403124f187f64ce7131b (diff)
feat!: dots-unlinking and ux changes
* start of unlink implementation * refactor: move dot logic out of main mod * feat: finish implementing unlinking of dots * chore: add test files to gitignore * chore: "use" cleanup * chore: add explanation and additional info to cli * chore: add crate description * chore: bump version to 2.0.0
Diffstat (limited to 'src/cli.rs')
-rw-r--r--src/cli.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/cli.rs b/src/cli.rs
new file mode 100644
index 0000000..f43bda4
--- /dev/null
+++ b/src/cli.rs
@@ -0,0 +1,20 @@
+use std::path::PathBuf;
+use clap::{Parser, Subcommand};
+
+#[derive(Parser)]
+#[clap(author = "Max Bossing", version, about = "System-agnostic dotfile deployer", long_about = None)]
+pub struct Cli {
+ #[arg(short, long, default_value = "dots.toml")]
+ pub config: Option<PathBuf>,
+
+ #[command(subcommand)]
+ pub command: CliCommand
+}
+
+#[derive(Subcommand)]
+pub enum CliCommand {
+ #[clap(about = "Deploys a dots set")]
+ Deploy,
+ #[clap(about = "Unlinks (tries to remove) a dots deployment")]
+ Unlink
+} \ No newline at end of file