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:
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/ngit/sub_commands/init.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/bin/ngit/sub_commands/init.rs b/src/bin/ngit/sub_commands/init.rs
index 5c43e6e..5ff57d5 100644
--- a/src/bin/ngit/sub_commands/init.rs
+++ b/src/bin/ngit/sub_commands/init.rs
@@ -282,12 +282,23 @@ fn resolve_grasp_servers(
282 282
283 if !interactive || cli.defaults || state.has_coordinate() || cli.force { 283 if !interactive || cli.defaults || state.has_coordinate() || cli.force {
284 // Prefer grasp servers from my existing announcement, then user's grasp 284 // Prefer grasp servers from my existing announcement, then user's grasp
285 // list, then system fallbacks 285 // list (or trusted maintainer's servers as fallback), then system defaults
286 let existing = detect_existing_grasp_servers(my_ref.as_ref(), &args.relay, &[], identifier); 286 let existing = detect_existing_grasp_servers(my_ref.as_ref(), &args.relay, &[], identifier);
287 if !existing.is_empty() { 287 if !existing.is_empty() {
288 return Ok(existing); 288 return Ok(existing);
289 } 289 }
290 return Ok(grasp_servers_from_user_or_fallback(user_ref, client)); 290 // For co-maintainer state, pass the repo_ref so the trusted
291 // maintainer's grasp servers can be used as a fallback.
292 let trusted_maintainer_repo_ref = if matches!(state, InitState::CoMaintainer { .. }) {
293 state.repo_ref()
294 } else {
295 None
296 };
297 return Ok(grasp_servers_from_user_or_fallback(
298 user_ref,
299 trusted_maintainer_repo_ref,
300 client,
301 ));
291 } 302 }
292 303
293 // Interactive prompt 304 // Interactive prompt