Initial project structure cleanup
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
use std::{
|
||||
thread,
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
fn delay() {
|
||||
thread::sleep(Duration::from_millis(350));
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn detect_router(
|
||||
ip: String,
|
||||
) -> Result<bool, String> {
|
||||
delay();
|
||||
|
||||
if ip.trim().is_empty() {
|
||||
return Err(
|
||||
"router IP is required".into(),
|
||||
);
|
||||
}
|
||||
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn upload_firmware(
|
||||
ip: String,
|
||||
firmware_path: String,
|
||||
) -> Result<String, String> {
|
||||
delay();
|
||||
|
||||
Ok(format!(
|
||||
"uploaded {} to {}:/tmp/firmware.bin",
|
||||
firmware_path, ip,
|
||||
))
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn flash_router(
|
||||
ip: String,
|
||||
remote_firmware_path: String,
|
||||
) -> Result<String, String> {
|
||||
delay();
|
||||
|
||||
Ok(format!(
|
||||
"sysupgrade started on {} with {}",
|
||||
ip, remote_firmware_path,
|
||||
))
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn wait_for_ssh(
|
||||
ip: String,
|
||||
) -> Result<bool, String> {
|
||||
for _ in 0..3 {
|
||||
delay();
|
||||
}
|
||||
|
||||
if ip == "198.51.100.1"
|
||||
|| ip == "192.168.1.1"
|
||||
{
|
||||
Ok(true)
|
||||
} else {
|
||||
Err(format!(
|
||||
"SSH timeout waiting for {}",
|
||||
ip,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn upload_provisioning_bundle(
|
||||
ip: String,
|
||||
env_content: String,
|
||||
script_content: String,
|
||||
) -> Result<String, String> {
|
||||
delay();
|
||||
|
||||
Ok(format!(
|
||||
"uploaded router.env ({} bytes) and provision.sh ({} bytes) to {}",
|
||||
env_content.len(),
|
||||
script_content.len(),
|
||||
ip,
|
||||
))
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn run_provisioning(
|
||||
ip: String,
|
||||
) -> Result<String, String> {
|
||||
delay();
|
||||
|
||||
Ok(format!(
|
||||
"provision.sh completed on {}; fw4/nftables, wg0, DNAT, LuCI over WireGuard configured",
|
||||
ip,
|
||||
))
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn capture_wireguard_public_key(
|
||||
_ip: String,
|
||||
) -> Result<String, String> {
|
||||
delay();
|
||||
|
||||
Ok(
|
||||
"MOCK_ROUTER_WIREGUARD_PUBLIC_KEY_BASE64="
|
||||
.into(),
|
||||
)
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub async fn verify_router(
|
||||
ip: String,
|
||||
) -> Result<bool, String> {
|
||||
delay();
|
||||
|
||||
if ip == "198.51.100.1" {
|
||||
Ok(true)
|
||||
} else {
|
||||
Err(
|
||||
"router verification failed"
|
||||
.into(),
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user