Browse Source

Merge pull request 'basic-arg-example-#6' (#11) from basic-arg-example-#6 into main

Reviewed-on: #11
init-functionality-#1
Coin de Gamma 4 months ago
parent
commit
0617f54e92
  1. 2
      .gitignore
  2. 9
      Cargo.toml
  3. 37
      src/main.rs

2
.gitignore vendored

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

9
Cargo.toml

@ -0,0 +1,9 @@
[package]
name = "mps"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
clap = { version = "4.5.16", features = ["derive"] }

37
src/main.rs

@ -0,0 +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() {
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