Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
cli: optional message for issue comments
Merged fintohaps opened 2 months ago

The From<String> for Message implementation has an interesting interaction between clap and how Message can be used from the command line.

Note that FromStr is not implemented for Message – which usually what is to be expected for use with clap, but in fact, clap also allows From<String>.

This would make Message be a required option when using rad issue comment.

It is not possible to use default_value_t because that required an implementation of Display, which in this case we do not want to implement. Trying to use default_value = "Message::Edit" also would not work – it uses that as the text.

So, the solution is to mark it as optional, and default to Message::Edit when it is not specified.

1 file changed +2 -1 c33c26fa eccfd6ba
modified crates/radicle-cli/src/commands/issue/args.rs
@@ -310,7 +310,7 @@ pub(crate) struct CommentArgs {
    /// The body of the comment
    #[arg(long, short)]
    #[arg(value_name = "MESSAGE")]
-
    message: Message,
+
    message: Option<Message>,

    /// Optionally, the comment to reply to. If not specified, the comment
    /// will be in reply to the issue itself
@@ -441,6 +441,7 @@ impl From<CommentArgs> for CommentAction {
            edit,
        }: CommentArgs,
    ) -> Self {
+
        let message = message.unwrap_or(Message::Edit);
        match (reply_to, edit) {
            (Some(_), Some(_)) => {
                unreachable!("the argument '--reply-to' cannot be used with '--edit'")