MCPcopy Create free account
hub / github.com/NativeScript/SimDeck / print_pairing_result

Function print_pairing_result

packages/server/src/main.rs:2037–2088  ·  view source on GitHub ↗
(target: &PairingTarget, started: bool, json: bool)

Source from the content-addressed store, hash-verified

2035}
2036
2037fn print_pairing_result(target: &PairingTarget, started: bool, json: bool) -> anyhow::Result<()> {
2038 let pairing_code = target.pairing_code.as_str();
2039 let addresses = pairing_addresses(target);
2040 let primary_url = addresses
2041 .iter()
2042 .find(|address| address.kind != "local")
2043 .or_else(|| addresses.first())
2044 .map(|address| address.url.as_str())
2045 .context("No SimDeck pairing address is available")?;
2046 let pair_url = simdeck_pair_url(
2047 primary_url,
2048 pairing_code,
2049 target.server_id.as_deref(),
2050 &addresses,
2051 );
2052
2053 if json {
2054 println_json(&serde_json::json!({
2055 "ok": true,
2056 "target": target.target,
2057 "service": target.service,
2058 "projectRoot": target.project_root,
2059 "pid": target.pid,
2060 "url": target.http_url,
2061 "started": started,
2062 "serverId": target.server_id,
2063 "pairingCode": pairing_code,
2064 "pairUrl": pair_url,
2065 "addresses": addresses,
2066 }))?;
2067 return Ok(());
2068 }
2069
2070 println!("🔐 SimDeck pairing");
2071 println!();
2072 for address in &addresses {
2073 let label = match address.kind {
2074 "local" => "Local:",
2075 "lan" => "LAN:",
2076 "tailscale" => "Tailscale:",
2077 _ => "URL:",
2078 };
2079 println!("{:>12} {}", label, address.url);
2080 }
2081 println!("{:>12} {}", "Pair:", format_pairing_code(pairing_code));
2082 println!();
2083 println!("Scan this with SimDeck for iOS:");
2084 println!();
2085 println!("{}", render_qr_code(&pair_url)?);
2086 println!("{:>12} {}", "Deep Link:", pair_url);
2087 Ok(())
2088}
2089
2090fn pairing_addresses(target: &PairingTarget) -> Vec<PairingAddress> {
2091 let mut addresses = Vec::new();

Callers 1

pair_global_serviceFunction · 0.85

Calls 4

pairing_addressesFunction · 0.85
simdeck_pair_urlFunction · 0.85
println_jsonFunction · 0.85
as_strMethod · 0.45

Tested by

no test coverage detected