upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2025-08-07 13:02:08 +0100
committerDanConwayDev <DanConwayDev@protonmail.com>2025-08-07 17:40:34 +0100
commit896267959bc9e436d7c5d2ee0ff8c8c088fc7274 (patch)
tree3ae5ef481ad5ffb0e9c74202093b25d510efe8ea /src/bin
parent3b5c48f5a2a4b9be5d14baa8f5e801fefd5c1166 (diff)
fix(send): PR cli output
to keep the user informed of whats happening / happend
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/ngit/sub_commands/init.rs19
-rw-r--r--src/bin/ngit/sub_commands/send.rs25
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
10use anyhow::{Context, Result, bail}; 10use anyhow::{Context, Result, bail};
11use console::{Style, Term}; 11use console::{Style, Term};
12use dialoguer::theme::{ColorfulTheme, Theme};
13use ngit::{ 12use 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
907pub 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
920fn push_main_or_master_branch(git_repo: &Repo) -> Result<()> { 909fn 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};
3use anyhow::{Context, Result, bail}; 3use anyhow::{Context, Result, bail};
4use console::Style; 4use console::Style;
5use ngit::{ 5use 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 {