Move domain to flag of lockdown CLI

This commit is contained in:
Jackson Coxson
2026-01-05 07:57:46 -07:00
parent 602e1ba855
commit 6dcfd4bc4c

View File

@@ -1,7 +1,7 @@
// Jackson Coxson // Jackson Coxson
use idevice::{IdeviceService, lockdown::LockdownClient, provider::IdeviceProvider}; use idevice::{IdeviceService, lockdown::LockdownClient, provider::IdeviceProvider};
use jkcli::{CollectedArguments, JkArgument, JkCommand}; use jkcli::{CollectedArguments, JkArgument, JkCommand, JkFlag};
use plist::Value; use plist::Value;
use plist_macro::pretty_print_plist; use plist_macro::pretty_print_plist;
@@ -12,8 +12,7 @@ pub fn register() -> JkCommand {
"get", "get",
JkCommand::new() JkCommand::new()
.help("Gets a value from lockdown") .help("Gets a value from lockdown")
.with_argument(JkArgument::new().with_help("The value to get")) .with_argument(JkArgument::new().with_help("The value to get")),
.with_argument(JkArgument::new().with_help("The domain to get in")),
) )
.with_subcommand( .with_subcommand(
"set", "set",
@@ -28,8 +27,12 @@ pub fn register() -> JkCommand {
JkArgument::new() JkArgument::new()
.with_help("The value key to set") .with_help("The value key to set")
.required(true), .required(true),
) ),
.with_argument(JkArgument::new().with_help("The domain to set in")), )
.with_flag(
JkFlag::new("domain")
.with_help("The domain to set/get in")
.with_argument(JkArgument::new().required(true)),
) )
.subcommand_required(true) .subcommand_required(true)
} }
@@ -47,10 +50,12 @@ pub async fn main(arguments: &CollectedArguments, provider: Box<dyn IdeviceProvi
let (sub_name, sub_args) = arguments.first_subcommand().expect("No subcommand"); let (sub_name, sub_args) = arguments.first_subcommand().expect("No subcommand");
let mut sub_args = sub_args.clone(); let mut sub_args = sub_args.clone();
let domain: Option<String> = sub_args.get_flag("domain");
let domain = domain.as_deref();
match sub_name.as_str() { match sub_name.as_str() {
"get" => { "get" => {
let key: Option<String> = sub_args.next_argument(); let key: Option<String> = sub_args.next_argument();
let domain: Option<String> = sub_args.next_argument();
match lockdown_client match lockdown_client
.get_value( .get_value(
@@ -58,10 +63,7 @@ pub async fn main(arguments: &CollectedArguments, provider: Box<dyn IdeviceProvi
Some(k) => Some(k.as_str()), Some(k) => Some(k.as_str()),
None => None, None => None,
}, },
match &domain { domain,
Some(d) => Some(d.as_str()),
None => None,
},
) )
.await .await
{ {
@@ -76,21 +78,10 @@ pub async fn main(arguments: &CollectedArguments, provider: Box<dyn IdeviceProvi
"set" => { "set" => {
let value_str: String = sub_args.next_argument().unwrap(); let value_str: String = sub_args.next_argument().unwrap();
let key: String = sub_args.next_argument().unwrap(); let key: String = sub_args.next_argument().unwrap();
let domain: Option<String> = sub_args.next_argument();
let value = Value::String(value_str.clone()); let value = Value::String(value_str.clone());
match lockdown_client match lockdown_client.set_value(key, value, domain).await {
.set_value(
key,
value,
match &domain {
Some(d) => Some(d.as_str()),
None => None,
},
)
.await
{
Ok(()) => println!("Successfully set"), Ok(()) => println!("Successfully set"),
Err(e) => eprintln!("Error setting value: {e}"), Err(e) => eprintln!("Error setting value: {e}"),
} }