upleb.uk

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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-02-11 16:09:52 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-02-11 16:16:09 +0000
commit3ca30c5ca49ce4b011ca73207c2355c3261c1dd3 (patch)
tree7ef65d89bbe733ea6b8bc636b351c1f7403669a3
parent15bf0d0b6befae6c81631c0e5d0dc2947dd3318a (diff)
rename --grasp-servers flag to --grasp-server
Allow multiple values via repeated --grasp-server flags instead of the less intuitive plural --grasp-servers form.
-rw-r--r--src/bin/ngit/sub_commands/init.rs12
-rw-r--r--tests/ngit_init.rs14
2 files changed, 13 insertions, 13 deletions
diff --git a/src/bin/ngit/sub_commands/init.rs b/src/bin/ngit/sub_commands/init.rs
index 827acf8..3fa67ba 100644
--- a/src/bin/ngit/sub_commands/init.rs
+++ b/src/bin/ngit/sub_commands/init.rs
@@ -304,8 +304,8 @@ fn resolve_grasp_servers(
304 identifier: &str, 304 identifier: &str,
305 interactive: bool, 305 interactive: bool,
306) -> Result<Vec<String>> { 306) -> Result<Vec<String>> {
307 if !args.grasp_servers.is_empty() { 307 if !args.grasp_server.is_empty() {
308 return Ok(args.grasp_servers.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.relays.is_empty() && !args.clone.is_empty();
@@ -414,13 +414,13 @@ fn validate_fresh(cli: &Cli, args: &SubCommandArgs, user_has_grasp_list: bool) -
414 missing.push(("--name <NAME>", "repository name or identifier")); 414 missing.push(("--name <NAME>", "repository name or identifier"));
415 } 415 }
416 416
417 let has_grasp_servers = !args.grasp_servers.is_empty(); 417 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(); 418 let has_both_relays_and_clone_url = !args.relays.is_empty() && !args.clone.is_empty();
419 let missing_servers = 419 let missing_servers =
420 !has_grasp_servers && !user_has_grasp_list && !has_both_relays_and_clone_url; 420 !has_grasp_servers && !user_has_grasp_list && !has_both_relays_and_clone_url;
421 if missing_servers { 421 if missing_servers {
422 missing.push(( 422 missing.push((
423 "--grasp-servers <URL>...", 423 "--grasp-server <URL>...",
424 "where your git+nostr data is hosted", 424 "where your git+nostr data is hosted",
425 )); 425 ));
426 } 426 }
@@ -467,7 +467,7 @@ pub struct SubCommandArgs {
467 description: Option<String>, 467 description: Option<String>,
468 #[clap(short, long, value_parser, num_args = 1..)] 468 #[clap(short, long, value_parser, num_args = 1..)]
469 /// where your git+nostr data is hosted 469 /// where your git+nostr data is hosted
470 grasp_servers: Vec<String>, 470 grasp_server: Vec<String>,
471 #[clap(long, value_parser, num_args = 1..)] 471 #[clap(long, value_parser, num_args = 1..)]
472 /// additional relays beyond grasp servers 472 /// additional relays beyond grasp servers
473 relays: Vec<String>, 473 relays: Vec<String>,
@@ -495,7 +495,7 @@ impl SubCommandArgs {
495 || self.description.is_some() 495 || self.description.is_some()
496 || !self.clone.is_empty() 496 || !self.clone.is_empty()
497 || !self.relays.is_empty() 497 || !self.relays.is_empty()
498 || !self.grasp_servers.is_empty() 498 || !self.grasp_server.is_empty()
499 || !self.web.is_empty() 499 || !self.web.is_empty()
500 || !self.blossoms.is_empty() 500 || !self.blossoms.is_empty()
501 || !self.other_maintainers.is_empty() 501 || !self.other_maintainers.is_empty()
diff --git a/tests/ngit_init.rs b/tests/ngit_init.rs
index f70bc2e..b25e321 100644
--- a/tests/ngit_init.rs
+++ b/tests/ngit_init.rs
@@ -64,7 +64,7 @@ mod state_a_fresh {
64 p.expect_eventually("logged in as")?; 64 p.expect_eventually("logged in as")?;
65 p.expect_eventually("missing required fields")?; 65 p.expect_eventually("missing required fields")?;
66 p.expect_eventually("--name <NAME>")?; 66 p.expect_eventually("--name <NAME>")?;
67 p.expect_eventually("--grasp-servers")?; 67 p.expect_eventually("--grasp-server")?;
68 Ok(()) 68 Ok(())
69 } 69 }
70 70
@@ -82,7 +82,7 @@ mod state_a_fresh {
82 ]; 82 ];
83 let mut p = CliTester::new_from_dir(&git_repo.dir, args); 83 let mut p = CliTester::new_from_dir(&git_repo.dir, args);
84 p.expect_eventually("logged in as")?; 84 p.expect_eventually("logged in as")?;
85 p.expect_eventually("missing --grasp-servers")?; 85 p.expect_eventually("missing --grasp-server")?;
86 Ok(()) 86 Ok(())
87 } 87 }
88 88
@@ -102,7 +102,7 @@ mod state_a_fresh {
102 p.expect_eventually("logged in as")?; 102 p.expect_eventually("logged in as")?;
103 p.expect_eventually("missing required fields")?; 103 p.expect_eventually("missing required fields")?;
104 p.expect_eventually("--name <NAME>")?; 104 p.expect_eventually("--name <NAME>")?;
105 p.expect_eventually("--grasp-servers")?; 105 p.expect_eventually("--grasp-server")?;
106 Ok(()) 106 Ok(())
107 } 107 }
108 } 108 }
@@ -177,7 +177,7 @@ mod state_a_fresh {
177 run_init_with_grasp_server(vec![ 177 run_init_with_grasp_server(vec![
178 "--name", 178 "--name",
179 "My Project", 179 "My Project",
180 "--grasp-servers", 180 "--grasp-server",
181 "ws://localhost:8055", 181 "ws://localhost:8055",
182 ]) 182 ])
183 .await 183 .await
@@ -461,7 +461,7 @@ mod state_b_coordinate_only {
461 "--disable-cli-spinners", 461 "--disable-cli-spinners",
462 "init", 462 "init",
463 "--force", 463 "--force",
464 "--grasp-servers", 464 "--grasp-server",
465 "ws://localhost:8055", 465 "ws://localhost:8055",
466 ]; 466 ];
467 let mut p = CliTester::new_from_dir(&dir, args); 467 let mut p = CliTester::new_from_dir(&dir, args);
@@ -938,7 +938,7 @@ mod state_d_co_maintainer {
938 TEST_KEY_1_NSEC, 938 TEST_KEY_1_NSEC,
939 "--disable-cli-spinners", 939 "--disable-cli-spinners",
940 "init", 940 "init",
941 "--grasp-servers", 941 "--grasp-server",
942 "ws://localhost:8055", 942 "ws://localhost:8055",
943 ]; 943 ];
944 let mut p = CliTester::new_from_dir(&dir, args); 944 let mut p = CliTester::new_from_dir(&dir, args);
@@ -1241,7 +1241,7 @@ mod state_e_not_listed {
1241 "--disable-cli-spinners", 1241 "--disable-cli-spinners",
1242 "init", 1242 "init",
1243 "--force", 1243 "--force",
1244 "--grasp-servers", 1244 "--grasp-server",
1245 "ws://localhost:8055", 1245 "ws://localhost:8055",
1246 ]; 1246 ];
1247 let mut p = CliTester::new_from_dir(&dir, args); 1247 let mut p = CliTester::new_from_dir(&dir, args);