41 lines
894 B
Rust
41 lines
894 B
Rust
use crate::repo::{self, Repository};
|
|
|
|
#[derive(clap::Args)]
|
|
pub struct Args {
|
|
#[clap(short, long)]
|
|
link: Option<String>,
|
|
|
|
#[clap(short, long)]
|
|
group: Option<String>,
|
|
|
|
name: String,
|
|
}
|
|
|
|
pub fn execute(repo: impl Repository, args: Args) {
|
|
let res = repo.insert_task(repo::InsertTaskData {
|
|
name: args.name,
|
|
link: args.link,
|
|
group: args.group,
|
|
index: None,
|
|
});
|
|
|
|
match res {
|
|
Ok(task) => {
|
|
println!("The task was added successfully");
|
|
|
|
print!(" ");
|
|
if let Some(group) = task.group {
|
|
print!("[{}]: ", group);
|
|
}
|
|
println!("{}", task.name);
|
|
|
|
if let Some(link) = task.link {
|
|
println!(" link: {}", link);
|
|
}
|
|
}
|
|
Err(err) => {
|
|
eprintln!("Cannot insert a new task: {}", err);
|
|
}
|
|
}
|
|
}
|