Browse Source

basic commands inittilization

basic-arg-example-#6
Coin de Gamma 4 months ago
parent
commit
1551b6987d
  1. 2
      .gitignore
  2. 1
      Cargo.toml
  3. 36
      src/main.rs

2
.gitignore vendored

@ -14,3 +14,5 @@ Cargo.lock
# MSVC Windows builds of rustc generate these, which store debugging information # MSVC Windows builds of rustc generate these, which store debugging information
*.pdb *.pdb
# All vim swap files of vim
*.sw?

1
Cargo.toml

@ -6,3 +6,4 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
clap = { version = "4.5.16", features = ["derive"] }

36
src/main.rs

@ -1,3 +1,37 @@
use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(name = "mps", version = "0.0.1", about = "MyPasswordStorage: Tool for storing your passwords locally with synchronization with git.")]
struct Cli {
#[command(subcommand)]
command: Option<Commands>,
}
#[derive(Subcommand)]
enum Commands {
/// Initialisation of storage and config, use this in first time of usage of mps
Init,
/// Adds new item with unique id to the db
Add {
#[arg(value_name="item_id")]
input: String
}
}
fn main() { fn main() {
println!("Hello, world!"); let cli = Cli::parse();
match &cli.command {
Some(Commands::Init) => {
println!("Initializing storage and config.");
}
Some(Commands::Add{input}) => {
println!("about to add new item");
}
None => {
println!("Will be here init or list if storage inited");
}
}
} }

Loading…
Cancel
Save