mirror of
https://github.com/ClementTsang/bottom.git
synced 2025-07-27 07:34:27 +02:00
refactor: convert more errors over (#1496)
* refactor: remove From<String> for BottomError * fix kill_process
This commit is contained in:
parent
1ec4ca3f06
commit
c56e28328e
@ -10,7 +10,6 @@ use windows::Win32::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use crate::data_collection::processes::Pid;
|
use crate::data_collection::processes::Pid;
|
||||||
#[cfg(target_family = "unix")]
|
|
||||||
use crate::utils::error::BottomError;
|
use crate::utils::error::BottomError;
|
||||||
|
|
||||||
/// Based from [this SO answer](https://stackoverflow.com/a/55231715).
|
/// Based from [this SO answer](https://stackoverflow.com/a/55231715).
|
||||||
@ -51,10 +50,8 @@ impl Drop for Process {
|
|||||||
/// Kills a process, given a PID, for windows.
|
/// Kills a process, given a PID, for windows.
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
pub fn kill_process_given_pid(pid: Pid) -> crate::utils::error::Result<()> {
|
pub fn kill_process_given_pid(pid: Pid) -> crate::utils::error::Result<()> {
|
||||||
{
|
let process = Process::open(pid as u32).map_err(BottomError::GenericError)?;
|
||||||
let process = Process::open(pid as u32)?;
|
process.kill().map_err(BottomError::GenericError)?;
|
||||||
process.kill()?;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@ -64,8 +61,8 @@ pub fn kill_process_given_pid(pid: Pid) -> crate::utils::error::Result<()> {
|
|||||||
pub fn kill_process_given_pid(pid: Pid, signal: usize) -> crate::utils::error::Result<()> {
|
pub fn kill_process_given_pid(pid: Pid, signal: usize) -> crate::utils::error::Result<()> {
|
||||||
// SAFETY: the signal should be valid, and we act properly on an error (exit
|
// SAFETY: the signal should be valid, and we act properly on an error (exit
|
||||||
// code not 0).
|
// code not 0).
|
||||||
|
|
||||||
let output = unsafe { libc::kill(pid, signal as i32) };
|
let output = unsafe { libc::kill(pid, signal as i32) };
|
||||||
|
|
||||||
if output != 0 {
|
if output != 0 {
|
||||||
// We had an error...
|
// We had an error...
|
||||||
let err_code = std::io::Error::last_os_error().raw_os_error();
|
let err_code = std::io::Error::last_os_error().raw_os_error();
|
||||||
|
@ -8,7 +8,6 @@ pub use crate::options::ConfigV1;
|
|||||||
use crate::{
|
use crate::{
|
||||||
constants::*,
|
constants::*,
|
||||||
options::{colours::ColoursConfig, OptionError, OptionResult},
|
options::{colours::ColoursConfig, OptionError, OptionResult},
|
||||||
utils::error,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
pub struct CanvasStyling {
|
pub struct CanvasStyling {
|
||||||
@ -206,18 +205,26 @@ impl CanvasStyling {
|
|||||||
|
|
||||||
if let Some(scroll_entry_text_color) = &colours.selected_text_color {
|
if let Some(scroll_entry_text_color) = &colours.selected_text_color {
|
||||||
self.set_scroll_entry_text_color(scroll_entry_text_color)
|
self.set_scroll_entry_text_color(scroll_entry_text_color)
|
||||||
.map_err(|_| OptionError::invalid_config_value("selected_text_color"))?
|
.map_err(|err| {
|
||||||
|
OptionError::config(format!(
|
||||||
|
"Please update 'colors.selected_text_color' in your config file. {err}",
|
||||||
|
))
|
||||||
|
})?
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(scroll_entry_bg_color) = &colours.selected_bg_color {
|
if let Some(scroll_entry_bg_color) = &colours.selected_bg_color {
|
||||||
self.set_scroll_entry_bg_color(scroll_entry_bg_color)
|
self.set_scroll_entry_bg_color(scroll_entry_bg_color)
|
||||||
.map_err(|_| OptionError::invalid_config_value("selected_bg_color"))?
|
.map_err(|err| {
|
||||||
|
OptionError::config(format!(
|
||||||
|
"Please update 'colors.selected_bg_color' in your config file. {err}",
|
||||||
|
))
|
||||||
|
})?
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_scroll_entry_text_color(&mut self, colour: &str) -> error::Result<()> {
|
fn set_scroll_entry_text_color(&mut self, colour: &str) -> Result<(), String> {
|
||||||
self.currently_selected_text_colour = str_to_colour(colour)?;
|
self.currently_selected_text_colour = str_to_colour(colour)?;
|
||||||
self.currently_selected_text_style = Style::default()
|
self.currently_selected_text_style = Style::default()
|
||||||
.fg(self.currently_selected_text_colour)
|
.fg(self.currently_selected_text_colour)
|
||||||
@ -226,7 +233,7 @@ impl CanvasStyling {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_scroll_entry_bg_color(&mut self, colour: &str) -> error::Result<()> {
|
fn set_scroll_entry_bg_color(&mut self, colour: &str) -> Result<(), String> {
|
||||||
self.currently_selected_bg_colour = str_to_colour(colour)?;
|
self.currently_selected_bg_colour = str_to_colour(colour)?;
|
||||||
self.currently_selected_text_style = Style::default()
|
self.currently_selected_text_style = Style::default()
|
||||||
.fg(self.currently_selected_text_colour)
|
.fg(self.currently_selected_text_colour)
|
||||||
|
@ -21,9 +21,3 @@ impl From<std::io::Error> for BottomError {
|
|||||||
BottomError::InvalidIo(err.to_string())
|
BottomError::InvalidIo(err.to_string())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<String> for BottomError {
|
|
||||||
fn from(err: String) -> Self {
|
|
||||||
BottomError::GenericError(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user