diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2026-02-11 16:09:52 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2026-02-11 16:16:09 +0000 |
| commit | 3ca30c5ca49ce4b011ca73207c2355c3261c1dd3 (patch) | |
| tree | 7ef65d89bbe733ea6b8bc636b351c1f7403669a3 | |
| parent | 15bf0d0b6befae6c81631c0e5d0dc2947dd3318a (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.rs | 12 | ||||
| -rw-r--r-- | tests/ngit_init.rs | 14 |
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); |