upleb.uk

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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/ngit/sub_commands/init.rs23
-rw-r--r--tests/ngit_init.rs2
2 files changed, 12 insertions, 13 deletions
diff --git a/src/bin/ngit/sub_commands/init.rs b/src/bin/ngit/sub_commands/init.rs
index 3fa67ba..ab14cb9 100644
--- a/src/bin/ngit/sub_commands/init.rs
+++ b/src/bin/ngit/sub_commands/init.rs
@@ -308,7 +308,7 @@ fn resolve_grasp_servers(
308 return Ok(args.grasp_server.clone()); 308 return Ok(args.grasp_server.clone());
309 } 309 }
310 310
311 let has_both_relays_and_clone_url = !args.relays.is_empty() && !args.clone.is_empty(); 311 let has_both_relays_and_clone_url = !args.relay.is_empty() && !args.clone.is_empty();
312 if has_both_relays_and_clone_url { 312 if has_both_relays_and_clone_url {
313 return Ok(vec![]); 313 return Ok(vec![]);
314 } 314 }
@@ -320,7 +320,7 @@ fn resolve_grasp_servers(
320 if !args.clone.is_empty() { 320 if !args.clone.is_empty() {
321 return Ok(detect_existing_grasp_servers( 321 return Ok(detect_existing_grasp_servers(
322 my_ref.as_ref(), 322 my_ref.as_ref(),
323 &args.relays, 323 &args.relay,
324 &args.clone, 324 &args.clone,
325 identifier, 325 identifier,
326 )); 326 ));
@@ -329,8 +329,7 @@ fn resolve_grasp_servers(
329 if !interactive || cli.defaults || state.has_coordinate() || cli.force { 329 if !interactive || cli.defaults || state.has_coordinate() || cli.force {
330 // Prefer grasp servers from my existing announcement, then user's grasp 330 // Prefer grasp servers from my existing announcement, then user's grasp
331 // list, then system fallbacks 331 // list, then system fallbacks
332 let existing = 332 let existing = detect_existing_grasp_servers(my_ref.as_ref(), &args.relay, &[], identifier);
333 detect_existing_grasp_servers(my_ref.as_ref(), &args.relays, &[], identifier);
334 if !existing.is_empty() { 333 if !existing.is_empty() {
335 return Ok(existing); 334 return Ok(existing);
336 } 335 }
@@ -339,7 +338,7 @@ fn resolve_grasp_servers(
339 338
340 // Interactive prompt 339 // Interactive prompt
341 let mut options: Vec<String> = 340 let mut options: Vec<String> =
342 detect_existing_grasp_servers(my_ref.as_ref(), &args.relays, &args.clone, identifier); 341 detect_existing_grasp_servers(my_ref.as_ref(), &args.relay, &args.clone, identifier);
343 let mut selections: Vec<bool> = vec![true; options.len()]; 342 let mut selections: Vec<bool> = vec![true; options.len()];
344 let empty = options.is_empty(); 343 let empty = options.is_empty();
345 for user_grasp_option in &user_ref.grasp_list.urls { 344 for user_grasp_option in &user_ref.grasp_list.urls {
@@ -415,7 +414,7 @@ fn validate_fresh(cli: &Cli, args: &SubCommandArgs, user_has_grasp_list: bool) -
415 } 414 }
416 415
417 let has_grasp_servers = !args.grasp_server.is_empty(); 416 let has_grasp_servers = !args.grasp_server.is_empty();
418 let has_both_relays_and_clone_url = !args.relays.is_empty() && !args.clone.is_empty(); 417 let has_both_relays_and_clone_url = !args.relay.is_empty() && !args.clone.is_empty();
419 let missing_servers = 418 let missing_servers =
420 !has_grasp_servers && !user_has_grasp_list && !has_both_relays_and_clone_url; 419 !has_grasp_servers && !user_has_grasp_list && !has_both_relays_and_clone_url;
421 if missing_servers { 420 if missing_servers {
@@ -470,7 +469,7 @@ pub struct SubCommandArgs {
470 grasp_server: Vec<String>, 469 grasp_server: Vec<String>,
471 #[clap(long, value_parser, num_args = 1..)] 470 #[clap(long, value_parser, num_args = 1..)]
472 /// additional relays beyond grasp servers 471 /// additional relays beyond grasp servers
473 relays: Vec<String>, 472 relay: Vec<String>,
474 #[clap(long)] 473 #[clap(long)]
475 /// additional git server URLs beyond grasp servers 474 /// additional git server URLs beyond grasp servers
476 clone: Vec<String>, 475 clone: Vec<String>,
@@ -494,7 +493,7 @@ impl SubCommandArgs {
494 || self.identifier.is_some() 493 || self.identifier.is_some()
495 || self.description.is_some() 494 || self.description.is_some()
496 || !self.clone.is_empty() 495 || !self.clone.is_empty()
497 || !self.relays.is_empty() 496 || !self.relay.is_empty()
498 || !self.grasp_server.is_empty() 497 || !self.grasp_server.is_empty()
499 || !self.web.is_empty() 498 || !self.web.is_empty()
500 || !self.blossoms.is_empty() 499 || !self.blossoms.is_empty()
@@ -675,7 +674,7 @@ fn resolve_fields(
675 }; 674 };
676 675
677 // --- Simple mode (interactive only) --- 676 // --- Simple mode (interactive only) ---
678 let simple_mode = if !interactive || (!args.clone.is_empty() && !args.relays.is_empty()) { 677 let simple_mode = if !interactive || (!args.clone.is_empty() && !args.relay.is_empty()) {
679 false // not used in non-interactive, but avoids Option 678 false // not used in non-interactive, but avoids Option
680 } else { 679 } else {
681 Interactor::default().choice( 680 Interactor::default().choice(
@@ -796,10 +795,10 @@ fn resolve_fields(
796 } else { 795 } else {
797 args.clone.clone() 796 args.clone.clone()
798 }; 797 };
799 let mut relay_strings = if args.relays.is_empty() { 798 let mut relay_strings = if args.relay.is_empty() {
800 relays_default 799 relays_default
801 } else { 800 } else {
802 args.relays.clone() 801 args.relay.clone()
803 }; 802 };
804 let mut blossom_strings = if args.blossoms.is_empty() { 803 let mut blossom_strings = if args.blossoms.is_empty() {
805 blossoms_default 804 blossoms_default
@@ -844,7 +843,7 @@ fn resolve_fields(
844 }; 843 };
845 844
846 // --- Relays --- 845 // --- Relays ---
847 let relays: Vec<RelayUrl> = if !args.relays.is_empty() || !interactive { 846 let relays: Vec<RelayUrl> = if !args.relay.is_empty() || !interactive {
848 relay_strings 847 relay_strings
849 .iter() 848 .iter()
850 .filter_map(|r| parse_relay_url(r).ok()) 849 .filter_map(|r| parse_relay_url(r).ok())
diff --git a/tests/ngit_init.rs b/tests/ngit_init.rs
index b25e321..ca462ea 100644
--- a/tests/ngit_init.rs
+++ b/tests/ngit_init.rs
@@ -95,7 +95,7 @@ mod state_a_fresh {
95 TEST_KEY_1_NSEC, 95 TEST_KEY_1_NSEC,
96 "--disable-cli-spinners", 96 "--disable-cli-spinners",
97 "init", 97 "init",
98 "--relays", 98 "--relay",
99 "ws://localhost:8055", 99 "ws://localhost:8055",
100 ]; 100 ];
101 let mut p = CliTester::new_from_dir(&git_repo.dir, args); 101 let mut p = CliTester::new_from_dir(&git_repo.dir, args);