From dc2f81cb3d7213885d91a903ba81d7d2a9f9ec6e Mon Sep 17 00:00:00 2001 From: LDprg Date: Sun, 10 Sep 2023 20:14:23 +0200 Subject: [PATCH 01/10] change message --- winapps/src/freerdp.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index 1150320..3ef7333 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -14,7 +14,7 @@ pub mod freerdp_back { xfreerdp.spawn().expect("Freerdp execution failed! It needs to be installed!"); println!("Freerdp found!"); - println!("Checks success!"); + println!("All dependencies found!"); } fn run_app(&self, config: Config, _app: &str) { From 83c61e999efc97eb351b5d3dc255e855f840dbd7 Mon Sep 17 00:00:00 2001 From: LDprg Date: Sun, 10 Sep 2023 21:06:13 +0200 Subject: [PATCH 02/10] trigger precommit --- winapps-cli/src/main.rs | 6 +++--- winapps/src/freerdp.rs | 13 ++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/winapps-cli/src/main.rs b/winapps-cli/src/main.rs index b82f71d..fba3b81 100644 --- a/winapps-cli/src/main.rs +++ b/winapps-cli/src/main.rs @@ -1,6 +1,6 @@ -use clap::Command; -use winapps::RemoteClient; +pub(crate) use clap::Command; use winapps::freerdp::freerdp_back::Freerdp; +use winapps::RemoteClient; fn cli() -> Command { Command::new("winapps-cli") @@ -16,7 +16,7 @@ fn main() { let cli = cli(); let matches = cli.clone().get_matches(); - let client: &dyn RemoteClient = &Freerdp{}; + let client: &dyn RemoteClient = &Freerdp {}; match matches.subcommand() { Some(("check", _)) => { diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index 3ef7333..aedbfd8 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -1,24 +1,27 @@ pub mod freerdp_back { use std::process::{Command, Stdio}; - use crate::{RemoteClient, Config}; + use crate::{Config, RemoteClient}; pub struct Freerdp {} impl RemoteClient for Freerdp { fn check_depends(&self, _config: Config) { - let mut xfreerdp = Command::new("xfreerdp"); xfreerdp.stdout(Stdio::null()); xfreerdp.args(["-h"]); - xfreerdp.spawn().expect("Freerdp execution failed! It needs to be installed!"); + xfreerdp + .spawn() + .expect("Freerdp execution failed! It needs to be installed!"); println!("Freerdp found!"); - + println!("All dependencies found!"); } - fn run_app(&self, config: Config, _app: &str) { + fn run_app(&self, _config: Config, _app: &str) { todo!() } } } + + From 15da1b7c8ac042a88c22b817b2bc8b64ac325ec9 Mon Sep 17 00:00:00 2001 From: LDprg Date: Sun, 10 Sep 2023 21:12:24 +0200 Subject: [PATCH 03/10] trigger again --- winapps/src/freerdp.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index aedbfd8..00152e3 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -23,5 +23,3 @@ pub mod freerdp_back { } } } - - From 437a43c7fe700fded5831d86e3e51c336a784ac2 Mon Sep 17 00:00:00 2001 From: LDprg Date: Sat, 7 Oct 2023 19:21:37 +0200 Subject: [PATCH 04/10] Add basic connect command --- winapps/src/freerdp.rs | 20 +++++++++++++++++--- winapps/src/lib.rs | 6 +++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index 00152e3..760b3e1 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -6,20 +6,34 @@ pub mod freerdp_back { pub struct Freerdp {} impl RemoteClient for Freerdp { - fn check_depends(&self, _config: Config) { + fn check_depends(&self, config: Config) { let mut xfreerdp = Command::new("xfreerdp"); xfreerdp.stdout(Stdio::null()); xfreerdp.args(["-h"]); xfreerdp .spawn() .expect("Freerdp execution failed! It needs to be installed!"); + println!("Freerdp found!"); println!("All dependencies found!"); + println!("Running explorer as test!"); + + self.run_app(config, "explorer"); + + println!("Test finished!"); } - fn run_app(&self, _config: Config, _app: &str) { - todo!() + fn run_app(&self, config: Config, _app: &str) { + let mut xfreerdp = Command::new("xfreerdp"); + xfreerdp.args([ + //"/app:".to_owned() + app, + "/d:".to_owned() + &config.rdp.domain, + "/u:".to_owned() + &config.rdp.username, + "/p:".to_owned() + &config.rdp.password, + "/v:".to_owned() + &config.rdp.host, + ]); + xfreerdp.spawn().expect("Freerdp execution failed!"); } } } diff --git a/winapps/src/lib.rs b/winapps/src/lib.rs index 9d17961..b3d268b 100644 --- a/winapps/src/lib.rs +++ b/winapps/src/lib.rs @@ -31,13 +31,13 @@ pub struct HostConfig { #[derive(new, Debug, Deserialize, Serialize)] pub struct RemoteConfig { - #[new(value = "\"RDPWindows\".to_string()")] + #[new(value = "\"127.0.0.1\".to_string()")] host: String, #[new(value = "\"WORKGROUP\".to_string()")] domain: String, - #[new(value = "\"RDPUser\".to_string()")] + #[new(value = "\"Quickemu\".to_string()")] username: String, - #[new(value = "\"RDPPass\".to_string()")] + #[new(value = "\"quickemu\".to_string()")] password: String, } From d80db169735e4f60bb97dafe7579039b8cd099c5 Mon Sep 17 00:00:00 2001 From: LDprg Date: Sat, 7 Oct 2023 19:32:38 +0200 Subject: [PATCH 05/10] minor fixes --- winapps-cli/src/main.rs | 2 +- winapps/src/freerdp.rs | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/winapps-cli/src/main.rs b/winapps-cli/src/main.rs index fba3b81..a1b6a72 100644 --- a/winapps-cli/src/main.rs +++ b/winapps-cli/src/main.rs @@ -29,7 +29,7 @@ fn main() { println!("Connecting to remote"); let config = winapps::load_config(None); - client.run_app(config, "explorer"); + client.run_app(config, "explorer.exe"); } Some((_, _)) => { cli.about("Command not found, try existing ones!") diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index 760b3e1..d9378da 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -19,19 +19,24 @@ pub mod freerdp_back { println!("All dependencies found!"); println!("Running explorer as test!"); - self.run_app(config, "explorer"); + self.run_app(config, "explorer.exe"); println!("Test finished!"); } - fn run_app(&self, config: Config, _app: &str) { + fn run_app(&self, config: Config, app: &str) { let mut xfreerdp = Command::new("xfreerdp"); xfreerdp.args([ - //"/app:".to_owned() + app, + "/app:".to_owned() + app, "/d:".to_owned() + &config.rdp.domain, "/u:".to_owned() + &config.rdp.username, "/p:".to_owned() + &config.rdp.password, "/v:".to_owned() + &config.rdp.host, + "/dynamic-resolution".to_owned(), + "+auto-reconnect".to_owned(), + "+clipboard".to_owned(), + "+home-drive".to_owned(), + "-wallpaper".to_owned(), ]); xfreerdp.spawn().expect("Freerdp execution failed!"); } From dbc5c9a82ef19d4f1214cc0edfd8fcdcf14a5cbd Mon Sep 17 00:00:00 2001 From: LDprg Date: Sat, 7 Oct 2023 19:54:28 +0200 Subject: [PATCH 06/10] Finish connect and app command --- winapps-cli/src/main.rs | 15 ++++++++++++-- winapps/src/freerdp.rs | 44 ++++++++++++++++++++++++++++------------- winapps/src/lib.rs | 2 +- 3 files changed, 44 insertions(+), 17 deletions(-) diff --git a/winapps-cli/src/main.rs b/winapps-cli/src/main.rs index a1b6a72..c3dee4b 100644 --- a/winapps-cli/src/main.rs +++ b/winapps-cli/src/main.rs @@ -1,4 +1,4 @@ -pub(crate) use clap::Command; +use clap::{arg, Command}; use winapps::freerdp::freerdp_back::Freerdp; use winapps::RemoteClient; @@ -10,6 +10,11 @@ fn cli() -> Command { .allow_external_subcommands(true) .subcommand(Command::new("check").about("Checks remote connection")) .subcommand(Command::new("connect").about("Connects to remote")) + .subcommand( + Command::new("app") + .about("Connects to app on remote") + .arg(arg!( "App to open")), + ) } fn main() { @@ -29,7 +34,13 @@ fn main() { println!("Connecting to remote"); let config = winapps::load_config(None); - client.run_app(config, "explorer.exe"); + client.run_app(config, None); + } + Some(("app", sub_matches)) => { + println!("Connecting to app on remote"); + + let config = winapps::load_config(None); + client.run_app(config, sub_matches.get_one::("APP")); } Some((_, _)) => { cli.about("Command not found, try existing ones!") diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index d9378da..77646e1 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -19,25 +19,41 @@ pub mod freerdp_back { println!("All dependencies found!"); println!("Running explorer as test!"); - self.run_app(config, "explorer.exe"); + self.run_app(config, Some(&"explorer.exe".to_string())); println!("Test finished!"); } - fn run_app(&self, config: Config, app: &str) { + fn run_app(&self, config: Config, app: Option<&String>) { let mut xfreerdp = Command::new("xfreerdp"); - xfreerdp.args([ - "/app:".to_owned() + app, - "/d:".to_owned() + &config.rdp.domain, - "/u:".to_owned() + &config.rdp.username, - "/p:".to_owned() + &config.rdp.password, - "/v:".to_owned() + &config.rdp.host, - "/dynamic-resolution".to_owned(), - "+auto-reconnect".to_owned(), - "+clipboard".to_owned(), - "+home-drive".to_owned(), - "-wallpaper".to_owned(), - ]); + match app { + Some(exe) => { + xfreerdp.args([ + "/app:".to_owned() + exe, + "-wallpaper".to_owned(), + "/d:".to_owned() + &config.rdp.domain, + "/u:".to_owned() + &config.rdp.username, + "/p:".to_owned() + &config.rdp.password, + "/v:".to_owned() + &config.rdp.host, + "/dynamic-resolution".to_owned(), + "+auto-reconnect".to_owned(), + "+clipboard".to_owned(), + "+home-drive".to_owned(), + ]); + } + None => { + xfreerdp.args([ + "/d:".to_owned() + &config.rdp.domain, + "/u:".to_owned() + &config.rdp.username, + "/p:".to_owned() + &config.rdp.password, + "/v:".to_owned() + &config.rdp.host, + "/dynamic-resolution".to_owned(), + "+auto-reconnect".to_owned(), + "+clipboard".to_owned(), + "+home-drive".to_owned(), + ]); + } + } xfreerdp.spawn().expect("Freerdp execution failed!"); } } diff --git a/winapps/src/lib.rs b/winapps/src/lib.rs index b3d268b..83b5d7c 100644 --- a/winapps/src/lib.rs +++ b/winapps/src/lib.rs @@ -12,7 +12,7 @@ pub mod freerdp; pub trait RemoteClient { fn check_depends(&self, config: Config); - fn run_app(&self, config: Config, app: &str); + fn run_app(&self, config: Config, app: Option<&String>); } #[derive(new, Debug, Deserialize, Serialize)] From 44f40fb2765f4ff97c2735b3184a7a4b732b1060 Mon Sep 17 00:00:00 2001 From: LDprg Date: Sat, 7 Oct 2023 20:02:26 +0200 Subject: [PATCH 07/10] Use format! for better code quality --- winapps/src/freerdp.rs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index 77646e1..5610522 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -29,28 +29,28 @@ pub mod freerdp_back { match app { Some(exe) => { xfreerdp.args([ - "/app:".to_owned() + exe, - "-wallpaper".to_owned(), - "/d:".to_owned() + &config.rdp.domain, - "/u:".to_owned() + &config.rdp.username, - "/p:".to_owned() + &config.rdp.password, - "/v:".to_owned() + &config.rdp.host, - "/dynamic-resolution".to_owned(), - "+auto-reconnect".to_owned(), - "+clipboard".to_owned(), - "+home-drive".to_owned(), + &format!("/app:{}", exe), + "-wallpaper", + &format!("/d:{}", &config.rdp.domain), + &format!("/u:{}", &config.rdp.username), + &format!("/p:{}", &config.rdp.password), + &format!("/v:{}", &config.rdp.host), + "/dynamic-resolution", + "+auto-reconnect", + "+clipboard", + "+home-drive", ]); } None => { xfreerdp.args([ - "/d:".to_owned() + &config.rdp.domain, - "/u:".to_owned() + &config.rdp.username, - "/p:".to_owned() + &config.rdp.password, - "/v:".to_owned() + &config.rdp.host, - "/dynamic-resolution".to_owned(), - "+auto-reconnect".to_owned(), - "+clipboard".to_owned(), - "+home-drive".to_owned(), + &format!("/d:{}", &config.rdp.domain), + &format!("/u:{}", &config.rdp.username), + &format!("/p:{}", &config.rdp.password), + &format!("/v:{}", &config.rdp.host), + "/dynamic-resolution", + "+auto-reconnect", + "+clipboard", + "+home-drive", ]); } } From 25889959ae441ffc7abecdfd107a97db92721042 Mon Sep 17 00:00:00 2001 From: LDprg Date: Mon, 9 Oct 2023 10:27:54 +0200 Subject: [PATCH 08/10] Fix stdout freerdp and clean up after merge of #26 --- winapps-cli/src/main.rs | 10 ++++------ winapps/src/freerdp.rs | 4 ++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/winapps-cli/src/main.rs b/winapps-cli/src/main.rs index b06a96d..4b6113a 100644 --- a/winapps-cli/src/main.rs +++ b/winapps-cli/src/main.rs @@ -1,4 +1,4 @@ -use clap::Command; +use clap::{arg, Command}; use winapps::freerdp::freerdp_back::Freerdp; use winapps::quickemu::{create_vm, kill_vm, start_vm}; use winapps::RemoteClient; @@ -33,28 +33,26 @@ fn main() { let matches = cli.clone().get_matches(); let client: &dyn RemoteClient = &Freerdp {}; + let config = winapps::load_config(None); match matches.subcommand() { Some(("check", _)) => { println!("Checking remote connection"); + client.check_depends(config); } Some(("connect", _)) => { println!("Connecting to remote"); - - let config = winapps::load_config(None); + client.run_app(config, None); } Some(("app", sub_matches)) => { println!("Connecting to app on remote"); - let config = winapps::load_config(None); client.run_app(config, sub_matches.get_one::("APP")); } Some(("vm", command)) => { - let config = winapps::load_config(None); - match command.subcommand() { Some(("create", _)) => { println!("Creating windows 10 vm.."); diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index 9041663..af13b1d 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -9,6 +9,7 @@ pub mod freerdp_back { fn check_depends(&self, config: Config) { let mut xfreerdp = Command::new("xfreerdp"); xfreerdp.stdout(Stdio::null()); + xfreerdp.stderr(Stdio::null()); xfreerdp.args(["-h"]); xfreerdp .spawn() @@ -17,6 +18,7 @@ pub mod freerdp_back { println!("All dependencies found!"); println!("Running explorer as test!"); + println!("Check yourself if it appears correctly!"); self.run_app(config, Some(&"explorer.exe".to_string())); @@ -25,6 +27,8 @@ pub mod freerdp_back { fn run_app(&self, config: Config, app: Option<&String>) { let mut xfreerdp = Command::new("xfreerdp"); + xfreerdp.stdout(Stdio::null()); + xfreerdp.stderr(Stdio::null()); match app { Some(exe) => { xfreerdp.args([ From c004c01514181aea81a3f0295ded443d1055098d Mon Sep 17 00:00:00 2001 From: LDprg Date: Mon, 9 Oct 2023 10:29:26 +0200 Subject: [PATCH 09/10] rename command app to run --- winapps-cli/src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/winapps-cli/src/main.rs b/winapps-cli/src/main.rs index 4b6113a..3887292 100644 --- a/winapps-cli/src/main.rs +++ b/winapps-cli/src/main.rs @@ -12,7 +12,7 @@ fn cli() -> Command { .subcommand(Command::new("check").about("Checks remote connection")) .subcommand(Command::new("connect").about("Connects to remote")) .subcommand( - Command::new("app") + Command::new("run") .about("Connects to app on remote") .arg(arg!( "App to open")), ) @@ -46,7 +46,7 @@ fn main() { client.run_app(config, None); } - Some(("app", sub_matches)) => { + Some(("run", sub_matches)) => { println!("Connecting to app on remote"); client.run_app(config, sub_matches.get_one::("APP")); From 47069edc0daa3c8ff81a43486b31f436aae5a5c5 Mon Sep 17 00:00:00 2001 From: LDprg Date: Mon, 9 Oct 2023 15:24:44 +0200 Subject: [PATCH 10/10] Remove unessary code --- winapps/src/freerdp.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/winapps/src/freerdp.rs b/winapps/src/freerdp.rs index af13b1d..cf7baa4 100644 --- a/winapps/src/freerdp.rs +++ b/winapps/src/freerdp.rs @@ -33,7 +33,6 @@ pub mod freerdp_back { Some(exe) => { xfreerdp.args([ &format!("/app:{}", exe), - "-wallpaper", &format!("/d:{}", &config.rdp.domain), &format!("/u:{}", &config.rdp.username), &format!("/p:{}", &config.rdp.password),