git flow was a mistake #11

Merged
cafkafk merged 29 commits from dev into main 2023-08-09 16:27:57 +02:00
3 changed files with 38 additions and 11 deletions
Showing only changes of commit 3217e27d4b - Show all commits

View file

@ -1,7 +1,8 @@
#+title: Roadmap
* 0.2.1
- [ ] jumps
- [X] jumps
- [-] repo and category selecting for subcommands
* 0.2.0 (maybe)
- [X] Links in categories?
- [X] Fix category with no links

View file

@ -84,7 +84,11 @@ pub enum Commands {
/// Do quick pull-commit-push with msg for commit
#[command(visible_alias = "q")]
Quick { msg: Option<String> },
Quick {
repo: Option<String>,
name: Option<String>,
msg: Option<String>,
},
/// Do fast pull-commit-push with msg for commit, skipping repo on failure
#[command(visible_alias = "f")]

View file

@ -74,15 +74,37 @@ fn main() {
Some(Commands::Link { msg: _ }) => {
config.link_all();
}
Some(Commands::Quick { msg }) => {
let s = Box::leak(
msg.as_mut()
.get_or_insert(&mut QUICK_COMMIT.to_string())
.clone()
.into_boxed_str(),
);
config.quick(s);
}
// NOTE: This implements "sub-subcommand"-like matching on repository,
// name, and additional data for a subcommand
// TODO: generalize for reuse by all commands that operate on repo->name->msg
Some(Commands::Quick { repo, name, msg }) => match (&repo, &name, &msg) {
(None, None, None) => {
let s = Box::leak(
msg.as_mut()
.get_or_insert(&mut QUICK_COMMIT.to_string())
.clone()
.into_boxed_str(),
);
config.quick(s);
}
(repo, None, None) => {
println!("{}", repo.as_ref().unwrap());
todo!();
}
(repo, name, None) => {
println!("{} {}", repo.as_ref().unwrap(), name.as_ref().unwrap());
todo!();
}
(repo, name, msg) => {
println!(
"{} {} {}",
repo.as_ref().unwrap(),
name.as_ref().unwrap(),
msg.as_ref().unwrap(),
);
todo!();
}
},
Some(Commands::Fast { msg }) => {
let s = Box::leak(
msg.as_mut()