(
metadata: &ServiceMetadata,
selector: Option<&str>,
json: bool,
started: bool,
)
| 1870 | } |
| 1871 | |
| 1872 | fn print_service_metadata_result( |
| 1873 | metadata: &ServiceMetadata, |
| 1874 | selector: Option<&str>, |
| 1875 | json: bool, |
| 1876 | started: bool, |
| 1877 | ) -> anyhow::Result<()> { |
| 1878 | let local_url = ui_url_from_base(metadata.http_url.clone(), selector); |
| 1879 | let addresses = service_addresses(metadata, selector); |
| 1880 | |
| 1881 | if json { |
| 1882 | println_json(&serde_json::json!({ |
| 1883 | "ok": true, |
| 1884 | "url": local_url, |
| 1885 | "pid": metadata.pid, |
| 1886 | "started": started, |
| 1887 | "serverId": auth::server_identity_for_token(&metadata.access_token), |
| 1888 | "pairingCode": metadata.pairing_code, |
| 1889 | "addresses": addresses, |
| 1890 | }))?; |
| 1891 | return Ok(()); |
| 1892 | } |
| 1893 | |
| 1894 | if started { |
| 1895 | println!("SimDeck service is running"); |
| 1896 | } else { |
| 1897 | println!("SimDeck service is already running"); |
| 1898 | } |
| 1899 | println!(); |
| 1900 | for address in &addresses { |
| 1901 | let label = match address.kind { |
| 1902 | "local" => "Local:", |
| 1903 | "lan" => "LAN:", |
| 1904 | "tailscale" => "Tailscale:", |
| 1905 | _ => "URL:", |
| 1906 | }; |
| 1907 | println!("{:>12} {}", label, address.url); |
| 1908 | } |
| 1909 | if let Some(pairing_code) = metadata.pairing_code.as_deref() { |
| 1910 | println!("{:>12} {}", "Pair:", format_pairing_code(pairing_code)); |
| 1911 | } |
| 1912 | Ok(()) |
| 1913 | } |
| 1914 | |
| 1915 | fn service_addresses(metadata: &ServiceMetadata, selector: Option<&str>) -> Vec<PairingAddress> { |
| 1916 | let mut addresses = Vec::new(); |
no test coverage detected