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>2024-04-22 09:29:18 +0100
committerDanConwayDev <DanConwayDev@protonmail.com>2024-04-22 09:29:18 +0100
commit6bfd8b0ddec7f8f4c24a97d357de9acd615b0b17 (patch)
tree5ae22330839b999f9d6e69faf11ad5ac91782448
parent4b49ab05e3b8fa3146d7dfd0c8e5250c14df46ae (diff)
feat(send): print link to proposal root
after a new root proposal has been sent link directly to gitworkshop.dev as well as njump.me until gitworkshop is added to njump
-rw-r--r--src/sub_commands/send.rs28
-rw-r--r--tests/send.rs12
2 files changed, 38 insertions, 2 deletions
diff --git a/src/sub_commands/send.rs b/src/sub_commands/send.rs
index d9caf9b..78d00b2 100644
--- a/src/sub_commands/send.rs
+++ b/src/sub_commands/send.rs
@@ -6,7 +6,7 @@ use futures::future::join_all;
6use indicatif::{MultiProgress, ProgressBar, ProgressStyle}; 6use indicatif::{MultiProgress, ProgressBar, ProgressStyle};
7use nostr::{ 7use nostr::{
8 nips::{nip01::Coordinate, nip19::Nip19}, 8 nips::{nip01::Coordinate, nip19::Nip19},
9 EventBuilder, FromBech32, Marker, Tag, TagKind, UncheckedUrl, 9 EventBuilder, FromBech32, Marker, Tag, TagKind, ToBech32, UncheckedUrl,
10}; 10};
11use nostr_sdk::hashes::sha1::Hash as Sha1Hash; 11use nostr_sdk::hashes::sha1::Hash as Sha1Hash;
12 12
@@ -220,12 +220,36 @@ pub async fn launch(cli_args: &Cli, args: &SubCommandArgs) -> Result<()> {
220 220
221 send_events( 221 send_events(
222 &client, 222 &client,
223 events, 223 events.clone(),
224 user_ref.relays.write(), 224 user_ref.relays.write(),
225 repo_ref.relays.clone(), 225 repo_ref.relays.clone(),
226 !cli_args.disable_cli_spinners, 226 !cli_args.disable_cli_spinners,
227 ) 227 )
228 .await?; 228 .await?;
229
230 if args.in_reply_to.is_none() {
231 if let Some(event) = events.first() {
232 // TODO: add gitworkshop.dev to njump and remove direct gitworkshop link
233 println!(
234 "{}",
235 dim.apply_to(format!(
236 "view in gitworkshop.dev: https://gitworkshop.dev/repo/{}/proposal/{}",
237 repo_ref.identifier,
238 event.id(),
239 ))
240 );
241 println!(
242 "{}",
243 dim.apply_to(format!(
244 "view in another client: https://njump.me/{}",
245 event
246 .id()
247 .to_bech32()
248 .context("cannot produce nevent from event id")?
249 ))
250 );
251 }
252 }
229 // TODO check if there is already a similarly named 253 // TODO check if there is already a similarly named
230 Ok(()) 254 Ok(())
231} 255}
diff --git a/tests/send.rs b/tests/send.rs
index 4af2347..a38546a 100644
--- a/tests/send.rs
+++ b/tests/send.rs
@@ -147,6 +147,14 @@ fn expect_msgs_first(p: &mut CliTester, include_cover_letter: bool) -> Result<()
147 Ok(()) 147 Ok(())
148} 148}
149 149
150fn expect_msgs_after(p: &mut CliTester) -> Result<()> {
151 p.expect_after_whitespace("view in gitworkshop.dev: https://gitworkshop.dev/repo")?;
152 p.expect_eventually("\r\n")?;
153 p.expect("view in another client: https://njump.me/")?;
154 p.expect_eventually("\r\n")?;
155 Ok(())
156}
157
150async fn prep_run_create_proposal( 158async fn prep_run_create_proposal(
151 include_cover_letter: bool, 159 include_cover_letter: bool,
152) -> Result<( 160) -> Result<(
@@ -715,6 +723,7 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_
715 ], 723 ],
716 3, 724 3,
717 )?; 725 )?;
726 expect_msgs_after(&mut p)?;
718 p.expect_end_with_whitespace()?; 727 p.expect_end_with_whitespace()?;
719 for p in [51, 52, 53, 55, 56] { 728 for p in [51, 52, 53, 55, 56] {
720 relay::shutdown_relay(8000 + p)?; 729 relay::shutdown_relay(8000 + p)?;
@@ -880,6 +889,7 @@ mod when_cover_letter_details_specified_with_range_of_head_2_sends_cover_letter_
880 ], 889 ],
881 3, 890 3,
882 )?; 891 )?;
892 expect_msgs_after(&mut p)?;
883 p.expect_end_with_whitespace()?; 893 p.expect_end_with_whitespace()?;
884 for p in [51, 52, 53, 55, 56] { 894 for p in [51, 52, 53, 55, 56] {
885 relay::shutdown_relay(8000 + p)?; 895 relay::shutdown_relay(8000 + p)?;
@@ -963,6 +973,7 @@ mod when_no_cover_letter_flag_set_with_range_of_head_2_sends_2_patches_without_c
963 ], 973 ],
964 2, 974 2,
965 )?; 975 )?;
976 expect_msgs_after(&mut p)?;
966 p.expect_end_with_whitespace()?; 977 p.expect_end_with_whitespace()?;
967 for p in [51, 52, 53, 55, 56] { 978 for p in [51, 52, 53, 55, 56] {
968 relay::shutdown_relay(8000 + p)?; 979 relay::shutdown_relay(8000 + p)?;
@@ -1241,6 +1252,7 @@ mod when_range_ommited_prompts_for_selection_defaulting_ahead_of_main {
1241 ], 1252 ],
1242 2, 1253 2,
1243 )?; 1254 )?;
1255 expect_msgs_after(&mut p)?;
1244 p.expect_end_with_whitespace()?; 1256 p.expect_end_with_whitespace()?;
1245 for p in [51, 52, 53, 55, 56] { 1257 for p in [51, 52, 53, 55, 56] {
1246 relay::shutdown_relay(8000 + p)?; 1258 relay::shutdown_relay(8000 + p)?;