diff options
Diffstat (limited to 'src/bin/ngit')
| -rw-r--r-- | src/bin/ngit/sub_commands/init.rs | 19 | ||||
| -rw-r--r-- | src/bin/ngit/sub_commands/send.rs | 25 |
2 files changed, 18 insertions, 26 deletions
diff --git a/src/bin/ngit/sub_commands/init.rs b/src/bin/ngit/sub_commands/init.rs index 6f3a357..98daee4 100644 --- a/src/bin/ngit/sub_commands/init.rs +++ b/src/bin/ngit/sub_commands/init.rs | |||
| @@ -9,10 +9,12 @@ use std::{ | |||
| 9 | 9 | ||
| 10 | use anyhow::{Context, Result, bail}; | 10 | use anyhow::{Context, Result, bail}; |
| 11 | use console::{Style, Term}; | 11 | use console::{Style, Term}; |
| 12 | use dialoguer::theme::{ColorfulTheme, Theme}; | ||
| 13 | use ngit::{ | 12 | use ngit::{ |
| 14 | UrlWithoutSlash, | 13 | UrlWithoutSlash, |
| 15 | cli_interactor::{PromptChoiceParms, PromptConfirmParms, multi_select_with_custom_value}, | 14 | cli_interactor::{ |
| 15 | PromptChoiceParms, PromptConfirmParms, multi_select_with_custom_value, | ||
| 16 | show_multi_input_prompt_success, | ||
| 17 | }, | ||
| 16 | client::{Params, send_events}, | 18 | client::{Params, send_events}, |
| 17 | git::nostr_url::{CloneUrl, NostrUrlDecoded}, | 19 | git::nostr_url::{CloneUrl, NostrUrlDecoded}, |
| 18 | repo_ref::{ | 20 | repo_ref::{ |
| @@ -904,19 +906,6 @@ fn parse_relay_url(s: &str) -> Result<RelayUrl> { | |||
| 904 | .context(format!("failed to parse relay url: {s}")) | 906 | .context(format!("failed to parse relay url: {s}")) |
| 905 | } | 907 | } |
| 906 | 908 | ||
| 907 | pub fn show_multi_input_prompt_success(label: &str, values: &[String]) { | ||
| 908 | let values_str: Vec<&str> = values.iter().map(std::string::String::as_str).collect(); | ||
| 909 | eprintln!("{}", { | ||
| 910 | let mut s = String::new(); | ||
| 911 | let _ = ColorfulTheme::default().format_multi_select_prompt_selection( | ||
| 912 | &mut s, | ||
| 913 | label, | ||
| 914 | &values_str, | ||
| 915 | ); | ||
| 916 | s | ||
| 917 | }); | ||
| 918 | } | ||
| 919 | |||
| 920 | fn push_main_or_master_branch(git_repo: &Repo) -> Result<()> { | 909 | fn push_main_or_master_branch(git_repo: &Repo) -> Result<()> { |
| 921 | let main_branch_name = { | 910 | let main_branch_name = { |
| 922 | let local_branches = git_repo | 911 | let local_branches = git_repo |
diff --git a/src/bin/ngit/sub_commands/send.rs b/src/bin/ngit/sub_commands/send.rs index 05054fd..3ae941f 100644 --- a/src/bin/ngit/sub_commands/send.rs +++ b/src/bin/ngit/sub_commands/send.rs | |||
| @@ -3,7 +3,9 @@ use std::{path::Path, str::FromStr, thread, time::Duration}; | |||
| 3 | use anyhow::{Context, Result, bail}; | 3 | use anyhow::{Context, Result, bail}; |
| 4 | use console::Style; | 4 | use console::Style; |
| 5 | use ngit::{ | 5 | use ngit::{ |
| 6 | cli_interactor::{PromptChoiceParms, multi_select_with_custom_value}, | 6 | cli_interactor::{ |
| 7 | PromptChoiceParms, multi_select_with_custom_value, show_multi_input_prompt_success, | ||
| 8 | }, | ||
| 7 | client::{Params, send_events}, | 9 | client::{Params, send_events}, |
| 8 | git::nostr_url::CloneUrl, | 10 | git::nostr_url::CloneUrl, |
| 9 | git_events::{ | 11 | git_events::{ |
| @@ -343,12 +345,13 @@ pub async fn launch(cli_args: &Cli, args: &SubCommandArgs, no_fetch: bool) -> Re | |||
| 343 | .collect(); | 345 | .collect(); |
| 344 | let selections = vec![true; default_choices.len()]; // all selected by default | 346 | let selections = vec![true; default_choices.len()]; // all selected by default |
| 345 | let grasp_servers = multi_select_with_custom_value( | 347 | let grasp_servers = multi_select_with_custom_value( |
| 346 | "grasp server(s)", | 348 | "alternative grasp server(s)", |
| 347 | "grasp server", | 349 | "grasp server", |
| 348 | default_choices, | 350 | default_choices, |
| 349 | selections, | 351 | selections, |
| 350 | normalize_grasp_server_url, | 352 | normalize_grasp_server_url, |
| 351 | )?; | 353 | )?; |
| 354 | show_multi_input_prompt_success("alternative grasp server(s)", &grasp_servers); | ||
| 352 | if grasp_servers.is_empty() { | 355 | if grasp_servers.is_empty() { |
| 353 | // ask again | 356 | // ask again |
| 354 | continue; | 357 | continue; |
| @@ -388,16 +391,16 @@ pub async fn launch(cli_args: &Cli, args: &SubCommandArgs, no_fetch: bool) -> Re | |||
| 388 | } | 391 | } |
| 389 | normalised_grasp_servers | 392 | normalised_grasp_servers |
| 390 | } else { | 393 | } else { |
| 391 | println!( | ||
| 392 | "{} personal-fork so we can push commits to your prefered grasp servers", | ||
| 393 | if user_repo_ref.is_some() { | ||
| 394 | "Updating" | ||
| 395 | } else { | ||
| 396 | "Creating a" | ||
| 397 | }, | ||
| 398 | ); | ||
| 399 | untried_user_grasp_servers | 394 | untried_user_grasp_servers |
| 400 | }; | 395 | }; |
| 396 | println!( | ||
| 397 | "{} personal-fork so we can push commits to your prefered grasp servers", | ||
| 398 | if user_repo_ref.is_some() { | ||
| 399 | "Updating" | ||
| 400 | } else { | ||
| 401 | "Creating a" | ||
| 402 | }, | ||
| 403 | ); | ||
| 401 | 404 | ||
| 402 | let grasp_servers_as_personal_clone_url: Vec<String> = grasp_servers | 405 | let grasp_servers_as_personal_clone_url: Vec<String> = grasp_servers |
| 403 | .iter() | 406 | .iter() |
| @@ -415,7 +418,7 @@ pub async fn launch(cli_args: &Cli, args: &SubCommandArgs, no_fetch: bool) -> Re | |||
| 415 | let updated_user_repo_ref = { | 418 | let updated_user_repo_ref = { |
| 416 | if let Some(mut user_repo_ref) = user_repo_ref { | 419 | if let Some(mut user_repo_ref) = user_repo_ref { |
| 417 | for g in &grasp_servers_as_personal_clone_url { | 420 | for g in &grasp_servers_as_personal_clone_url { |
| 418 | let _ = user_repo_ref.add_grasp_server(g); | 421 | user_repo_ref.add_grasp_server(g)?; |
| 419 | } | 422 | } |
| 420 | user_repo_ref | 423 | user_repo_ref |
| 421 | } else { | 424 | } else { |