Fix metadata

This commit is contained in:
AB
2024-07-07 21:13:19 +03:00
parent 34dccc5772
commit d5fa1e0d9a
5 changed files with 158 additions and 82 deletions

View File

@ -1,8 +1,8 @@
use reqwest::Client;
use serde::{Deserialize, Serialize};
use std::fs::File;
use std::io::{self, BufRead, Write};
use std::path::Path;
use reqwest::Client;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Clone, Debug)]
struct SshKey {
@ -43,15 +43,15 @@ fn write_known_hosts(file_path: &str, keys: &[SshKey]) -> io::Result<()> {
async fn send_keys_to_server(host: &str, keys: Vec<SshKey>) -> Result<(), reqwest::Error> {
let client = Client::new();
let url = format!("{}/keys", host);
let response = client.post(&url)
.json(&keys)
.send()
.await?;
let response = client.post(&url).json(&keys).send().await?;
if response.status().is_success() {
println!("Keys successfully sent to server.");
} else {
eprintln!("Failed to send keys to server. Status: {}", response.status());
eprintln!(
"Failed to send keys to server. Status: {}",
response.status()
);
}
Ok(())
@ -66,21 +66,25 @@ async fn get_keys_from_server(host: &str) -> Result<Vec<SshKey>, reqwest::Error>
let keys: Vec<SshKey> = response.json().await?;
Ok(keys)
} else {
eprintln!("Failed to get keys from server. Status: {}", response.status());
eprintln!(
"Failed to get keys from server. Status: {}",
response.status()
);
Ok(vec![])
}
}
pub async fn run_client(args: crate::Args) -> std::io::Result<()> {
let keys = read_known_hosts(&args.known_hosts)
.expect("Failed to read known hosts file");
let keys = read_known_hosts(&args.known_hosts).expect("Failed to read known hosts file");
let host = args.host.expect("host is required in client mode");
send_keys_to_server(&host, keys).await
send_keys_to_server(&host, keys)
.await
.expect("Failed to send keys to server");
if args.in_place {
let server_keys = get_keys_from_server(&host).await
let server_keys = get_keys_from_server(&host)
.await
.expect("Failed to get keys from server");
write_known_hosts(&args.known_hosts, &server_keys)