X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/7b5b5776f014db0ad18fb6af909c63bbf2293c88..7c7fc76a649678e9f77f1fcaeaaf4efdf9cc3cd9:/client/src/cli.rs?ds=sidebyside diff --git a/client/src/cli.rs b/client/src/cli.rs index 0b513268..7fa5d1c5 100644 --- a/client/src/cli.rs +++ b/client/src/cli.rs @@ -1,9 +1,10 @@ -use clap::{crate_version, Parser, Subcommand, ValueEnum}; use std::{ffi::OsString, net::SocketAddr}; +use clap::{crate_version, Parser, Subcommand, ValueEnum}; + /// JSON-RPC client for signal-cli #[derive(Parser, Debug)] -#[command(rename_all = "kebab-case", version=crate_version!())] +#[command(rename_all = "kebab-case", version = crate_version!())] pub struct Cli { /// Account to use (for daemon in multi-account mode) #[arg(short = 'a', long)] @@ -14,6 +15,7 @@ pub struct Cli { pub json_rpc_tcp: Option>, /// UNIX socket address and port of signal-cli daemon + #[cfg(unix)] #[arg(long, conflicts_with = "json_rpc_tcp")] pub json_rpc_socket: Option>, @@ -21,9 +23,6 @@ pub struct Cli { #[arg(long, conflicts_with = "json_rpc_socket")] pub json_rpc_http: Option>, - #[arg(value_enum, long, default_value_t = OutputTypes::Json)] - pub output: OutputTypes, - #[arg(long)] pub verbose: bool, @@ -31,21 +30,18 @@ pub struct Cli { pub command: CliCommands, } -#[derive(ValueEnum, Clone, Debug)] -#[value(rename_all = "kebab-case")] -pub enum OutputTypes { - PlainText, - Json, -} - #[allow(clippy::large_enum_variant)] #[derive(Subcommand, Debug)] -#[command(rename_all = "camelCase", version=crate_version!())] +#[command(rename_all = "camelCase", version = crate_version!())] pub enum CliCommands { AddDevice { #[arg(long)] uri: String, }, + AddStickerPack { + #[arg(long)] + uri: String, + }, #[command(rename_all = "kebab-case")] Block { recipient: Vec, @@ -57,8 +53,40 @@ pub enum CliCommands { #[arg(long = "ignore-registered")] ignore_registered: Option, }, + FinishChangeNumber { + number: String, + #[arg(short = 'v', long = "verification-code")] + verification_code: String, + + #[arg(short = 'p', long)] + pin: Option, + }, + GetAttachment { + #[arg(long)] + id: String, + #[arg(long)] + recipient: Option, + #[arg(short = 'g', long = "group-id")] + group_id: Option, + }, + GetAvatar { + #[arg(long)] + contact: Option, + #[arg(long)] + profile: Option, + #[arg(short = 'g', long = "group-id")] + group_id: Option, + }, + GetSticker { + #[arg(long = "pack-id")] + pack_id: String, + #[arg(long = "sticker-id")] + sticker_id: u32, + }, GetUserStatus { recipient: Vec, + #[arg(long)] + username: Vec, }, JoinGroup { #[arg(long)] @@ -112,6 +140,8 @@ pub enum CliCommands { recipient: String, #[arg(long)] forget: bool, + #[arg(long)] + hide: bool, }, RemoveDevice { #[arg(short = 'd', long = "device-id")] @@ -149,9 +179,15 @@ pub enum CliCommands { #[arg(short = 'a', long)] attachment: Vec, + #[arg(long)] + view_once: bool, + #[arg(long)] mention: Vec, + #[arg(long)] + text_style: Vec, + #[arg(long)] quote_timestamp: Option, @@ -164,9 +200,24 @@ pub enum CliCommands { #[arg(long)] quote_mention: Vec, + #[arg(long)] + quote_text_style: Vec, + #[arg(long)] quote_attachment: Vec, + #[arg(long)] + preview_url: Option, + + #[arg(long)] + preview_title: Option, + + #[arg(long)] + preview_description: Option, + + #[arg(long)] + preview_image: Option, + #[arg(long)] sticker: Option, @@ -175,6 +226,9 @@ pub enum CliCommands { #[arg(long)] story_author: Option, + + #[arg(long)] + edit_timestamp: Option, }, SendContacts, SendPaymentNotification { @@ -229,9 +283,24 @@ pub enum CliCommands { #[arg(short = 's', long)] stop: bool, }, + SendMessageRequestResponse { + recipient: Vec, + + #[arg(short = 'g', long = "group-id")] + group_id: Vec, + + r#type: MessageRequestResponseType, + }, SetPin { pin: String, }, + StartChangeNumber { + number: String, + #[arg(short = 'v', long)] + voice: bool, + #[arg(long)] + captcha: Option, + }, SubmitRateLimitChallenge { challenge: String, captcha: String, @@ -259,6 +328,12 @@ pub enum CliCommands { UpdateAccount { #[arg(short = 'n', long = "device-name")] device_name: Option, + #[arg(long = "unrestricted-unidentified-sender")] + unrestricted_unidentified_sender: Option, + #[arg(long = "discoverable-by-number")] + discoverable_by_number: Option, + #[arg(long = "number-sharing")] + number_sharing: Option, }, UpdateConfiguration { #[arg(long = "read-receipts")] @@ -344,7 +419,7 @@ pub enum CliCommands { #[arg(long = "about-emoji")] about_emoji: Option, - #[arg(long = "mobile-coin-address")] + #[arg(long = "mobile-coin-address", visible_alias = "mobilecoin-address")] mobile_coin_address: Option, #[arg(long)] @@ -386,3 +461,10 @@ pub enum GroupPermission { EveryMember, OnlyAdmins, } + +#[derive(ValueEnum, Clone, Debug)] +#[value(rename_all = "kebab-case")] +pub enum MessageRequestResponseType { + Accept, + Delete, +}