mirror of
https://github.com/Cyrix126/gupaxx.git
synced 2025-01-08 15:09:24 +00:00
main/helper: change [Start] button, change [Sudo] input order
This commit is contained in:
parent
3fee0e5690
commit
1b999e3d9b
3 changed files with 30 additions and 26 deletions
|
@ -69,6 +69,7 @@ pub const RED: egui::Color32 = egui::Color32::from_rgb(230, 50, 50);
|
|||
pub const GREEN: egui::Color32 = egui::Color32::from_rgb(100, 230, 100);
|
||||
pub const YELLOW: egui::Color32 = egui::Color32::from_rgb(230, 230, 100);
|
||||
pub const BRIGHT_YELLOW: egui::Color32 = egui::Color32::from_rgb(250, 250, 100);
|
||||
pub const WHITE: egui::Color32 = egui::Color32::WHITE;
|
||||
pub const GRAY: egui::Color32 = egui::Color32::GRAY;
|
||||
pub const LIGHT_GRAY: egui::Color32 = egui::Color32::LIGHT_GRAY;
|
||||
pub const BLACK: egui::Color32 = egui::Color32::BLACK;
|
||||
|
|
|
@ -632,8 +632,8 @@ impl Helper {
|
|||
// Before that though, add the ["--prompt"] flag and set it
|
||||
// to emptyness so that it doesn't show up in the output.
|
||||
if cfg!(unix) {
|
||||
args.push("--stdin".to_string());
|
||||
args.push(r#"--prompt="#.to_string());
|
||||
args.push("--".to_string());
|
||||
args.push(path.display().to_string());
|
||||
}
|
||||
|
||||
|
@ -718,7 +718,7 @@ impl Helper {
|
|||
async fn spawn_xmrig_watchdog(process: Arc<Mutex<Process>>, gui_api: Arc<Mutex<PubXmrigApi>>, pub_api: Arc<Mutex<PubXmrigApi>>, priv_api: Arc<Mutex<PrivXmrigApi>>, args: Vec<String>, mut path: std::path::PathBuf, sudo: Arc<Mutex<SudoState>>) {
|
||||
// 1a. Create PTY
|
||||
let pty = portable_pty::native_pty_system();
|
||||
let pair = pty.openpty(portable_pty::PtySize {
|
||||
let mut pair = pty.openpty(portable_pty::PtySize {
|
||||
rows: 100,
|
||||
cols: 1000,
|
||||
pixel_width: 0,
|
||||
|
@ -732,7 +732,16 @@ impl Helper {
|
|||
// 1c. Create child
|
||||
let child_pty = Arc::new(Mutex::new(pair.slave.spawn_command(cmd).unwrap()));
|
||||
|
||||
// 2. Set process state
|
||||
// 2. Input [sudo] pass, wipe, then drop.
|
||||
if cfg!(unix) {
|
||||
// 1d. Sleep to wait for [sudo]'s non-echo prompt (on Unix).
|
||||
// this prevents users pass from showing up in the STDOUT.
|
||||
std::thread::sleep(std::time::Duration::from_secs(3));
|
||||
writeln!(pair.master, "{}", sudo.lock().unwrap().pass);
|
||||
SudoState::wipe(&sudo);
|
||||
}
|
||||
|
||||
// 3. Set process state
|
||||
let mut lock = process.lock().unwrap();
|
||||
lock.state = ProcessState::Alive;
|
||||
lock.signal = ProcessSignal::None;
|
||||
|
@ -740,15 +749,9 @@ impl Helper {
|
|||
lock.child = Some(Arc::clone(&child_pty));
|
||||
let reader = pair.master.try_clone_reader().unwrap(); // Get STDOUT/STDERR before moving the PTY
|
||||
lock.stdin = Some(pair.master);
|
||||
|
||||
// 3. Input [sudo] pass, wipe, then drop.
|
||||
if cfg!(unix) {
|
||||
writeln!(lock.stdin.as_mut().unwrap(), "{}", sudo.lock().unwrap().pass);
|
||||
SudoState::wipe(&sudo);
|
||||
}
|
||||
drop(lock);
|
||||
|
||||
// 3. Spawn PTY read thread
|
||||
// 4. Spawn PTY read thread
|
||||
let output_full = Arc::clone(&process.lock().unwrap().output_full);
|
||||
let output_buf = Arc::clone(&process.lock().unwrap().output_buf);
|
||||
thread::spawn(move || {
|
||||
|
@ -762,7 +765,7 @@ impl Helper {
|
|||
// let regex = P2poolRegex::new();
|
||||
let start = process.lock().unwrap().start;
|
||||
|
||||
// 4. Loop as watchdog
|
||||
// 5. Loop as watchdog
|
||||
info!("XMRig | Entering watchdog mode... woof!");
|
||||
loop {
|
||||
// Set timer
|
||||
|
|
30
src/main.rs
30
src/main.rs
|
@ -1152,9 +1152,9 @@ impl eframe::App for App {
|
|||
let width = (ui.available_width()/3.0)-5.0;
|
||||
if self.p2pool.lock().unwrap().is_waiting() {
|
||||
ui.add_enabled_ui(false, |ui| {
|
||||
ui.add_sized([width, height], Button::new("⟲")).on_hover_text("Restart P2Pool");
|
||||
ui.add_sized([width, height], Button::new("⏹")).on_hover_text("Stop P2Pool");
|
||||
ui.add_sized([width, height], Button::new("⏺")).on_hover_text("Start P2Pool");
|
||||
ui.add_sized([width, height], Button::new("⟲")).on_disabled_hover_text("Restart P2Pool");
|
||||
ui.add_sized([width, height], Button::new("⏹")).on_disabled_hover_text("Stop P2Pool");
|
||||
ui.add_sized([width, height], Button::new("▶")).on_disabled_hover_text("Start P2Pool");
|
||||
});
|
||||
} else if self.p2pool.lock().unwrap().is_alive() {
|
||||
if ui.add_sized([width, height], Button::new("⟲")).on_hover_text("Restart P2Pool").clicked() {
|
||||
|
@ -1164,12 +1164,12 @@ impl eframe::App for App {
|
|||
Helper::stop_p2pool(&self.helper);
|
||||
}
|
||||
ui.add_enabled_ui(false, |ui| {
|
||||
ui.add_sized([width, height], Button::new("⏺")).on_hover_text("Start P2Pool");
|
||||
ui.add_sized([width, height], Button::new("▶")).on_disabled_hover_text("Start P2Pool");
|
||||
});
|
||||
} else {
|
||||
ui.add_enabled_ui(false, |ui| {
|
||||
ui.add_sized([width, height], Button::new("⟲")).on_hover_text("Restart P2Pool");
|
||||
ui.add_sized([width, height], Button::new("⏹")).on_hover_text("Stop P2Pool");
|
||||
ui.add_sized([width, height], Button::new("⟲")).on_disabled_hover_text("Restart P2Pool");
|
||||
ui.add_sized([width, height], Button::new("⏹")).on_disabled_hover_text("Stop P2Pool");
|
||||
});
|
||||
// Check if address is okay before allowing to start.
|
||||
let mut text = String::new();
|
||||
|
@ -1180,7 +1180,7 @@ impl eframe::App for App {
|
|||
ui.set_enabled(false);
|
||||
text = P2POOL_PATH_NOT_EXE.to_string();
|
||||
}
|
||||
if ui.add_sized([width, height], Button::new("⏺")).on_hover_text("Start P2Pool").on_disabled_hover_text(text).clicked() {
|
||||
if ui.add_sized([width, height], Button::new("▶")).on_hover_text("Start P2Pool").on_disabled_hover_text(text).clicked() {
|
||||
Helper::start_p2pool(&self.helper, &self.state.p2pool, &self.state.gupax.absolute_p2pool_path);
|
||||
}
|
||||
}
|
||||
|
@ -1201,9 +1201,9 @@ impl eframe::App for App {
|
|||
let width = (ui.available_width()/3.0)-5.0;
|
||||
if self.xmrig.lock().unwrap().is_waiting() {
|
||||
ui.add_enabled_ui(false, |ui| {
|
||||
ui.add_sized([width, height], Button::new("⟲")).on_hover_text("Restart XMRig");
|
||||
ui.add_sized([width, height], Button::new("⏹")).on_hover_text("Stop XMRig");
|
||||
ui.add_sized([width, height], Button::new("⏺")).on_hover_text("Start XMRig");
|
||||
ui.add_sized([width, height], Button::new("⟲")).on_disabled_hover_text("Restart XMRig");
|
||||
ui.add_sized([width, height], Button::new("⏹")).on_disabled_hover_text("Stop XMRig");
|
||||
ui.add_sized([width, height], Button::new("▶")).on_disabled_hover_text("Start XMRig");
|
||||
});
|
||||
} else if self.xmrig.lock().unwrap().is_alive() {
|
||||
if ui.add_sized([width, height], Button::new("⟲")).on_hover_text("Restart XMRig").clicked() {
|
||||
|
@ -1226,12 +1226,12 @@ impl eframe::App for App {
|
|||
}
|
||||
}
|
||||
ui.add_enabled_ui(false, |ui| {
|
||||
ui.add_sized([width, height], Button::new("⏺")).on_hover_text("Start XMRig");
|
||||
ui.add_sized([width, height], Button::new("▶")).on_disabled_hover_text("Start XMRig");
|
||||
});
|
||||
} else {
|
||||
ui.add_enabled_ui(false, |ui| {
|
||||
ui.add_sized([width, height], Button::new("⟲")).on_hover_text("Restart XMRig");
|
||||
ui.add_sized([width, height], Button::new("⏹")).on_hover_text("Stop XMRig");
|
||||
ui.add_sized([width, height], Button::new("⟲")).on_disabled_hover_text("Restart XMRig");
|
||||
ui.add_sized([width, height], Button::new("⏹")).on_disabled_hover_text("Stop XMRig");
|
||||
});
|
||||
let mut text = String::new();
|
||||
if !Gupax::path_is_exe(&self.state.gupax.xmrig_path) {
|
||||
|
@ -1239,11 +1239,11 @@ impl eframe::App for App {
|
|||
text = XMRIG_PATH_NOT_EXE.to_string();
|
||||
}
|
||||
#[cfg(target_os = "windows")]
|
||||
if ui.add_sized([width, height], Button::new("⏺")).on_hover_text("Start XMRig").on_disabled_hover_text(text).clicked() {
|
||||
if ui.add_sized([width, height], Button::new("▶")).on_hover_text("Start XMRig").on_disabled_hover_text(text).clicked() {
|
||||
Helper::start_xmrig(&self.helper, &self.state.xmrig, &self.state.gupax.absolute_xmrig_path, Arc::clone(&self.sudo));
|
||||
}
|
||||
#[cfg(target_family = "unix")]
|
||||
if ui.add_sized([width, height], Button::new("⏺")).on_hover_text("Start XMRig").on_disabled_hover_text(text).clicked() {
|
||||
if ui.add_sized([width, height], Button::new("▶")).on_hover_text("Start XMRig").on_disabled_hover_text(text).clicked() {
|
||||
self.sudo.lock().unwrap().signal = ProcessSignal::Start;
|
||||
self.error_state.ask_sudo(&self.sudo);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue