deps: update clap to 3.x (#690)

Updates bottom to use clap 3.x, along with some small refactoring changes.
This commit is contained in:
Clement Tsang 2022-03-07 22:53:02 -05:00 committed by GitHub
parent e682882aee
commit 01f6bddab6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 253 additions and 295 deletions

94
Cargo.lock generated
View file

@ -26,15 +26,6 @@ dependencies = [
"memchr",
]
[[package]]
name = "ansi_term"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
dependencies = [
"winapi",
]
[[package]]
name = "anyhow"
version = "1.0.44"
@ -239,6 +230,7 @@ dependencies = [
"cargo-husky",
"cfg-if",
"clap",
"clap_complete",
"crossterm",
"ctrlc",
"dirs",
@ -318,17 +310,28 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "2.33.3"
version = "3.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123"
dependencies = [
"ansi_term",
"atty",
"bitflags",
"strsim 0.8.0",
"indexmap",
"lazy_static",
"os_str_bytes",
"strsim 0.10.0",
"termcolor",
"terminal_size",
"textwrap",
"unicode-width",
"vec_map",
]
[[package]]
name = "clap_complete"
version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df6f3613c0a3cddfd78b41b10203eb322cb29b600cbdf808a7d3db95691b8e25"
dependencies = [
"clap",
]
[[package]]
@ -1120,6 +1123,15 @@ version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
[[package]]
name = "os_str_bytes"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
dependencies = [
"memchr",
]
[[package]]
name = "parking"
version = "2.0.0"
@ -1424,18 +1436,18 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "strsim"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "strsim"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
[[package]]
name = "strsim"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "syn"
version = "1.0.80"
@ -1462,6 +1474,25 @@ dependencies = [
"winapi",
]
[[package]]
name = "termcolor"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
dependencies = [
"winapi-util",
]
[[package]]
name = "terminal_size"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
dependencies = [
"libc",
"winapi",
]
[[package]]
name = "termtree"
version = "0.2.1"
@ -1470,11 +1501,11 @@ checksum = "78fbf2dd23e79c28ccfa2472d3e6b3b189866ffef1aeb91f17c2d968b6586378"
[[package]]
name = "textwrap"
version = "0.11.0"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
dependencies = [
"unicode-width",
"terminal_size",
]
[[package]]
@ -1582,12 +1613,6 @@ dependencies = [
"typenum",
]
[[package]]
name = "vec_map"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "wait-timeout"
version = "0.2.0"
@ -1640,6 +1665,15 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
dependencies = [
"winapi",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"

View file

@ -40,7 +40,7 @@ anyhow = "1.0.40"
backtrace = "0.3.59"
crossterm = "0.18.2"
ctrlc = { version = "3.1.9", features = ["termination"] }
clap = "2.33"
clap = { version = "3.1.6", features = ["default", "cargo", "wrap_help"] }
cfg-if = "1.0"
dirs = "4.0.0"
futures = "0.3.14"
@ -85,13 +85,23 @@ assert_cmd = "2.0"
predicates = "2.1"
[build-dependencies]
clap = "2.33"
clap = { version = "3.1.6", features = ["default", "cargo", "wrap_help"] }
clap_complete = "3.1.1"
[package.metadata.deb]
section = "utility"
assets = [
["target/release/btm", "usr/bin/", "755"],
["LICENSE", "usr/share/doc/btm/", "644"],
[
"target/release/btm",
"usr/bin/",
"755",
],
[
"LICENSE",
"usr/share/doc/btm/",
"644",
],
[
"completion/btm.bash",
"usr/share/bash-completion/completions/btm",
@ -102,7 +112,11 @@ assets = [
"usr/share/fish/vendor_completions.d/btm.fish",
"644",
],
["completion/_btm", "usr/share/zsh/vendor-completions/", "644"],
[
"completion/_btm",
"usr/share/zsh/vendor-completions/",
"644",
],
]
extended-description = """\
A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows.

View file

@ -1,5 +1,6 @@
use clap::Shell;
use clap_complete::{generate_to, shells::Shell};
use std::{env, fs, process};
include!("src/clap.rs");
fn main() {
@ -24,8 +25,9 @@ fn main() {
// Generate completions
let mut app = build_app();
app.gen_completions("btm", Shell::Bash, &out_dir);
app.gen_completions("btm", Shell::Zsh, &out_dir);
app.gen_completions("btm", Shell::Fish, &out_dir);
app.gen_completions("btm", Shell::PowerShell, &out_dir);
generate_to(Shell::Bash, &mut app, "btm", &out_dir).unwrap();
generate_to(Shell::Zsh, &mut app, "btm", &out_dir).unwrap();
generate_to(Shell::Fish, &mut app, "btm", &out_dir).unwrap();
generate_to(Shell::PowerShell, &mut app, "btm", &out_dir).unwrap();
generate_to(Shell::Elvish, &mut app, "btm", &out_dir).unwrap();
}

View file

@ -9,7 +9,7 @@ const TEMPLATE: &str = "\
USAGE:{usage}
FLAGS:
{unified}";
{options}";
const USAGE: &str = "
btm [FLAG]";
@ -46,7 +46,7 @@ Supported widget names:
+--------------------------+
| batt, battery |
+--------------------------+
\n\n"
"
} else {
"\
Sets which widget type to use as the default widget.
@ -77,225 +77,167 @@ Supported widget names:
+--------------------------+
| disk |
+--------------------------+
\n\n"
"
};
pub fn get_matches() -> clap::ArgMatches<'static> {
pub fn get_matches() -> clap::ArgMatches {
build_app().get_matches()
}
// TODO: Refactor this a bit, it's quite messy atm
pub fn build_app() -> App<'static, 'static> {
pub fn build_app() -> Command<'static> {
// Temps
let kelvin = Arg::with_name("kelvin")
.short("k")
let kelvin = Arg::new("kelvin")
.short('k')
.long("kelvin")
.help("Sets the temperature type to Kelvin.")
.long_help(
"\
Sets the temperature type to Kelvin.\n\n",
);
let fahrenheit = Arg::with_name("fahrenheit")
.short("f")
.long_help("Sets the temperature type to Kelvin.");
let fahrenheit = Arg::new("fahrenheit")
.short('f')
.long("fahrenheit")
.help("Sets the temperature type to Fahrenheit.")
.long_help(
"\
Sets the temperature type to Fahrenheit.\n\n",
);
let celsius = Arg::with_name("celsius")
.short("c")
.long_help("Sets the temperature type to Fahrenheit.");
let celsius = Arg::new("celsius")
.short('c')
.long("celsius")
.help("Sets the temperature type to Celsius.")
.long_help(
"\
Sets the temperature type to Celsius. This is the default
option.\n\n",
);
.long_help("Sets the temperature type to Celsius. This is the default option.");
// All flags. These are in alphabetical order
let autohide_time = Arg::with_name("autohide_time")
let autohide_time = Arg::new("autohide_time")
.long("autohide_time")
.help("Temporarily shows the time scale in graphs.")
.long_help(
"\
Automatically hides the time scale in graphs after being
shown for a brief moment when zoomed in/out. If time is
disabled via --hide_time then this will have no effect.\n\n\n",
"Automatically hides the time scale in graphs after being shown for \
a brief moment when zoomed in/out. If time is disabled via --hide_time \
then this will have no effect.",
);
let basic = Arg::with_name("basic")
.short("b")
let basic = Arg::new("basic")
.short('b')
.long("basic")
.help("Hides graphs and uses a more basic look.")
.long_help(
"\
Hides graphs and uses a more basic look. Design is largely
inspired by htop's.\n\n",
"Hides graphs and uses a more basic look. Design is largely inspired by htop's.",
);
let case_sensitive = Arg::with_name("case_sensitive")
.short("S")
let case_sensitive = Arg::new("case_sensitive")
.short('S')
.long("case_sensitive")
.help("Enables case sensitivity by default.")
.long_help(
"\
When searching for a process, enables case sensitivity by default.\n\n",
);
let current_usage = Arg::with_name("current_usage")
.short("u")
.long_help("When searching for a process, enables case sensitivity by default.");
let current_usage = Arg::new("current_usage")
.short('u')
.long("current_usage")
.help("Sets process CPU% to be based on current CPU%.")
.long_help(
"\
Sets process CPU% usage to be based on the current system CPU% usage
rather than total CPU usage.\n\n",
);
.long_help("Sets process CPU% usage to be based on the current system CPU% usage rather than total CPU usage.");
// TODO: [DEBUG] Add a proper debugging solution.
// let debug = Arg::with_name("debug")
// .long("debug")
// .help("Enables debug logging.")
// .long_help(
// "\
// Enables debug logging. The program will print where it logged to after running.",
// );
// TODO: [DIAGNOSE] Add a diagnose option to help with debugging.
let disable_click = Arg::with_name("disable_click")
let disable_click = Arg::new("disable_click")
.long("disable_click")
.help("Disables mouse clicks.")
.long_help(
"\
Disables mouse clicks from interacting with the program.\n\n",
);
.long_help("Disables mouse clicks from interacting with the program.");
let dot_marker = Arg::with_name("dot_marker")
.short("m")
let dot_marker = Arg::new("dot_marker")
.short('m')
.long("dot_marker")
.help("Uses a dot marker for graphs.")
.long_help(
"\
Uses a dot marker for graphs as opposed to the default braille
marker.\n\n",
);
.long_help("Uses a dot marker for graphs as opposed to the default braille marker.");
let group = Arg::with_name("group") // FIXME: Rename this to something like "group_process", would be "breaking" though.
.short("g")
let group = Arg::new("group") // FIXME: Rename this to something like "group_process", would be "breaking" though.
.short('g')
.long("group")
.help("Groups processes with the same name by default.")
.long_help(
"\
Groups processes with the same name by default.\n\n",
);
.long_help("Groups processes with the same name by default.");
let hide_avg_cpu = Arg::with_name("hide_avg_cpu")
.short("a")
let hide_avg_cpu = Arg::new("hide_avg_cpu")
.short('a')
.long("hide_avg_cpu")
.help("Hides the average CPU usage.")
.long_help(
"\
Hides the average CPU usage from being shown.\n\n",
);
.long_help("Hides the average CPU usage from being shown.");
let hide_table_gap = Arg::with_name("hide_table_gap")
let hide_table_gap = Arg::new("hide_table_gap")
.long("hide_table_gap")
.help("Hides the spacing between table headers and entries.")
.long_help(
"\
Hides the spacing between table headers and entries.\n\n",
);
.long_help("Hides the spacing between table headers and entries.");
let hide_time = Arg::with_name("hide_time")
let hide_time = Arg::new("hide_time")
.long("hide_time")
.help("Hides the time scale.")
.long_help(
"\
Completely hides the time scale from being shown.\n\n",
);
.long_help("Completely hides the time scale from being shown.");
let process_command = Arg::with_name("process_command")
let process_command = Arg::new("process_command")
.long("process_command")
.help("Show processes as their commands by default.")
.long_help(
"\
Show processes as their commands by default in the process widget.
",
);
.long_help("Show processes as their commands by default in the process widget.");
let left_legend = Arg::with_name("left_legend")
.short("l")
let left_legend = Arg::new("left_legend")
.short('l')
.long("left_legend")
.help("Puts the CPU chart legend to the left side.")
.long_help(
"\
Puts the CPU chart legend to the left side rather than the right side.\n\n",
);
.long_help("Puts the CPU chart legend to the left side rather than the right side.");
// let no_write = Arg::with_name("no_write")
// .long("no_write")
// .help("Disables writing to the config file.")
// .long_help(
// "\
// Disables config changes in-app from writing to the config file.",
// );
let regex = Arg::with_name("regex")
.short("R")
let regex = Arg::new("regex")
.short('R')
.long("regex")
.help("Enables regex by default.")
.long_help(
"\
When searching for a process, enables regex by default.\n\n",
);
.long_help("When searching for a process, enables regex by default.");
let disable_advanced_kill = Arg::with_name("disable_advanced_kill")
let disable_advanced_kill = Arg::new("disable_advanced_kill")
.long("disable_advanced_kill")
.help("Hides advanced options to stop a process on Unix-like systems.")
.long_help(
"\
Hides advanced options to stop a process on Unix-like systems. The only option shown is -15.\n\n",
);
.long_help("Hides advanced options to stop a process on Unix-like systems. The only option shown is -15.");
let show_table_scroll_position = Arg::with_name("show_table_scroll_position")
let show_table_scroll_position = Arg::new("show_table_scroll_position")
.long("show_table_scroll_position")
.help("Shows the scroll position tracker in table widgets.")
.long_help(
"\
Shows the list scroll position tracker in the widget title for table widgets.\n\n",
);
.long_help("Shows the list scroll position tracker in the widget title for table widgets.");
let use_old_network_legend = Arg::with_name("use_old_network_legend")
let use_old_network_legend = Arg::new("use_old_network_legend")
.long("use_old_network_legend")
.help("DEPRECATED - uses the older network legend.")
.help("DEPRECATED - uses a separate network legend.")
.long_help(
"\
DEPRECATED - uses the older (pre-0.4) network widget legend.
This display is not tested anymore and could be broken.\n\n\n",
"DEPRECATED - uses an older (pre-0.4), separate network widget legend. This display is not \
tested anymore and could be broken.",
);
let whole_word = Arg::with_name("whole_word")
.short("W")
let whole_word = Arg::new("whole_word")
.short('W')
.long("whole_word")
.help("Enables whole-word matching by default.")
.long_help(
"\
When searching for a process, return results that match the
entire query by default.\n\n",
"When searching for a process, return results that match the entire query by default.",
);
// All options. Again, alphabetical order.
let config_location = Arg::with_name("config_location")
.short("C")
let config_location = Arg::new("config_location")
.short('C')
.long("config")
.takes_value(true)
.value_name("CONFIG PATH")
.help("Sets the location of the config file.")
.long_help(
"\
Sets the location of the config file. Expects a config
file in the TOML format. If it doesn't exist, one is created.\n\n\n",
"Sets the location of the config file. Expects a config file in the TOML format. \
If it doesn't exist, one is created.",
);
let color = Arg::with_name("color")
let color = Arg::new("color")
.long("color")
.takes_value(true)
.value_name("COLOR SCHEME")
.possible_values(&[
"default",
"default-light",
"gruvbox",
"gruvbox-light",
"nord",
"nord-light",
])
.hide_possible_values(true)
.help("Use a color scheme, use --help for supported values.")
.long_help(
"\
@ -316,37 +258,23 @@ Use a pre-defined color scheme. Currently supported values are:
+------------------------------------------------------------+
Defaults to \"default\".
\n\n",
)
.possible_values(&[
"default",
"default-light",
"gruvbox",
"gruvbox-light",
"nord",
"nord-light",
])
.hide_possible_values(true);
let mem_as_value = Arg::with_name("mem_as_value")
",
);
let mem_as_value = Arg::new("mem_as_value")
.long("mem_as_value")
.help("Defaults to showing process memory usage by value.")
.long_help(
"\
Defaults to showing process memory usage by value. Otherwise,
it defaults to showing it by percentage.\n\n",
);
let default_time_value = Arg::with_name("default_time_value")
.short("t")
.long_help("Defaults to showing process memory usage by value. Otherwise, it defaults to showing it by percentage.");
let default_time_value = Arg::new("default_time_value")
.short('t')
.long("default_time_value")
.takes_value(true)
.value_name("MS")
.help("Default time value for graphs in ms.")
.long_help(
"\
Default time value for graphs in milliseconds. The minimum
time is 30s (30000), and the default is 60s (60000).\n\n\n",
);
let default_widget_count = Arg::with_name("default_widget_count")
.long_help("Default time value for graphs in milliseconds. The minimum time is 30s (30000), and the default is 60s (60000).");
let default_widget_count = Arg::new("default_widget_count")
.long("default_widget_count")
.takes_value(true)
.requires_all(&["default_widget_type"])
@ -369,83 +297,69 @@ And we set our default widget type to 'CPU'. If we set
'--default_widget_count 1', then it would use the CPU (1) as
the default widget. If we set '--default_widget_count 3', it would
use CPU (3) as the default instead.
\n\n",
",
);
let default_widget_type = Arg::with_name("default_widget_type")
let default_widget_type = Arg::new("default_widget_type")
.long("default_widget_type")
.takes_value(true)
.value_name("WIDGET TYPE")
.help("Sets the default widget type, use --help for more info.")
.long_help(DEFAULT_WIDGET_TYPE_STR);
let rate = Arg::with_name("rate")
.short("r")
let rate = Arg::new("rate")
.short('r')
.long("rate")
.takes_value(true)
.value_name("MS")
.help("Sets a refresh rate in ms.")
.long_help(
"\
Sets a refresh rate in milliseconds. The minimum is 250ms,
and defaults to 1000ms. Smaller values may take more resources.\n\n\n",
);
let time_delta = Arg::with_name("time_delta")
.short("d")
.long_help("Sets a refresh rate in milliseconds. The minimum is 250ms, and defaults to 1000ms. Smaller values may take more computer resources.");
let time_delta = Arg::new("time_delta")
.short('d')
.long("time_delta")
.takes_value(true)
.value_name("MS")
.help("The amount in ms changed upon zooming.")
.long_help(
"\
The amount of time in milliseconds changed when zooming in/out.
The minimum is 1s (1000), and defaults to 15s (15000).\n\n\n",
);
.long_help("The amount of time in milliseconds changed when zooming in/out. The minimum is 1s (1000), and defaults to 15s (15000).");
let tree = Arg::with_name("tree")
.short("T")
let tree = Arg::new("tree")
.short('T')
.long("tree")
.help("Defaults to showing the process widget in tree mode.")
.long_help(
"\
Defaults to showing the process widget in tree mode.\n\n",
);
.long_help("Defaults to showing the process widget in tree mode.");
let network_use_bytes = Arg::with_name("network_use_bytes")
let network_use_bytes = Arg::new("network_use_bytes")
.long("network_use_bytes")
.help("Displays the network widget using bytes.")
.long_help(
"\
Displays the network widget using bytes. Defaults to bits.\n\n",
);
.long_help("Displays the network widget using bytes. Defaults to bits.");
let network_use_log = Arg::with_name("network_use_log")
let network_use_log = Arg::new("network_use_log")
.long("network_use_log")
.help("Displays the network widget with a log scale.")
.long_help(
"\
Displays the network widget with a log scale. Defaults to a non-log scale.\n\n",
);
.long_help("Displays the network widget with a log scale. Defaults to a non-log scale.");
let network_use_binary_prefix = Arg::with_name("network_use_binary_prefix")
let network_use_binary_prefix = Arg::new("network_use_binary_prefix")
.long("network_use_binary_prefix")
.help("Displays the network widget with binary prefixes.")
.long_help(
"\
Displays the network widget with binary prefixes (i.e. kibibits, mebibits) rather than a decimal prefix (i.e. kilobits, megabits). Defaults to decimal prefixes.\n\n\n",
"Displays the network widget with binary prefixes (i.e. kibibits, mebibits) rather than a decimal prefix (i.e. kilobits, megabits). Defaults to decimal prefixes.",
);
let app = App::new(crate_name!())
.setting(AppSettings::UnifiedHelpMessage)
let app = Command::new(crate_name!())
.version(crate_version!())
.author(crate_authors!())
.about(crate_description!())
.template(TEMPLATE)
.usage(USAGE)
.help_message("Prints help information. Use --help for more info.")
.version_message("Prints version information.")
.override_usage(USAGE)
.help_template(TEMPLATE)
.mut_arg("help", |a| {
a.help("Prints help information. Use --help for more info.")
})
.mut_arg("version", |a| a.help("Prints version information."))
.arg(kelvin)
.arg(fahrenheit)
.arg(celsius)
.group(ArgGroup::with_name("TEMPERATURE_TYPE").args(&["kelvin", "fahrenheit", "celsius"]))
.group(ArgGroup::new("TEMPERATURE_TYPE").args(&["kelvin", "fahrenheit", "celsius"]))
.arg(autohide_time)
.arg(basic)
.arg(case_sensitive)
@ -477,13 +391,11 @@ Displays the network widget with binary prefixes (i.e. kibibits, mebibits) rathe
.arg(whole_word);
let app = if cfg!(feature = "battery") {
let battery = Arg::with_name("battery")
let battery = Arg::new("battery")
.long("battery")
.help("Shows the battery widget.")
.long_help(
"\
Shows the battery widget in default or basic mode. No effect on
custom layouts.\n\n",
"Shows the battery widget in default or basic mode. No effect on custom layouts.",
);
app.arg(battery)
} else {

View file

@ -244,7 +244,7 @@ pub struct IgnoreList {
}
pub fn build_app(
matches: &clap::ArgMatches<'static>, config: &mut Config, widget_layout: &BottomLayout,
matches: &clap::ArgMatches, config: &mut Config, widget_layout: &BottomLayout,
default_widget_id: u64, default_widget_type_option: &Option<BottomWidgetType>,
config_path: Option<PathBuf>,
) -> Result<App> {
@ -524,7 +524,7 @@ pub fn build_app(
}
pub fn get_widget_layout(
matches: &clap::ArgMatches<'static>, config: &Config,
matches: &clap::ArgMatches, config: &Config,
) -> error::Result<(BottomLayout, u64, Option<BottomWidgetType>)> {
let left_legend = get_use_left_legend(matches, config);
let (default_widget_type, mut default_widget_count) =
@ -589,7 +589,7 @@ pub fn get_widget_layout(
}
fn get_update_rate_in_milliseconds(
matches: &clap::ArgMatches<'static>, config: &Config,
matches: &clap::ArgMatches, config: &Config,
) -> error::Result<u64> {
let update_rate_in_milliseconds = if let Some(update_rate) = matches.value_of("rate") {
update_rate.parse::<u128>()?
@ -617,7 +617,7 @@ fn get_update_rate_in_milliseconds(
}
fn get_temperature(
matches: &clap::ArgMatches<'static>, config: &Config,
matches: &clap::ArgMatches, config: &Config,
) -> error::Result<data_harvester::temperature::TemperatureType> {
if matches.is_present("fahrenheit") {
return Ok(data_harvester::temperature::TemperatureType::Fahrenheit);
@ -643,7 +643,7 @@ fn get_temperature(
}
/// Yes, this function gets whether to show average CPU (true) or not (false)
fn get_show_average_cpu(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_show_average_cpu(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("hide_avg_cpu") {
return false;
} else if let Some(flags) = &config.flags {
@ -655,7 +655,7 @@ fn get_show_average_cpu(matches: &clap::ArgMatches<'static>, config: &Config) ->
true
}
fn get_use_dot(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_use_dot(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("dot_marker") {
return true;
} else if let Some(flags) = &config.flags {
@ -666,7 +666,7 @@ fn get_use_dot(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
false
}
fn get_use_left_legend(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_use_left_legend(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("left_legend") {
return true;
} else if let Some(flags) = &config.flags {
@ -678,7 +678,7 @@ fn get_use_left_legend(matches: &clap::ArgMatches<'static>, config: &Config) ->
false
}
fn get_use_current_cpu_total(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_use_current_cpu_total(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("current_usage") {
return true;
} else if let Some(flags) = &config.flags {
@ -690,7 +690,7 @@ fn get_use_current_cpu_total(matches: &clap::ArgMatches<'static>, config: &Confi
false
}
fn get_use_basic_mode(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_use_basic_mode(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("basic") {
return true;
} else if let Some(flags) = &config.flags {
@ -702,9 +702,7 @@ fn get_use_basic_mode(matches: &clap::ArgMatches<'static>, config: &Config) -> b
false
}
fn get_default_time_value(
matches: &clap::ArgMatches<'static>, config: &Config,
) -> error::Result<u64> {
fn get_default_time_value(matches: &clap::ArgMatches, config: &Config) -> error::Result<u64> {
let default_time = if let Some(default_time_value) = matches.value_of("default_time_value") {
default_time_value.parse::<u128>()?
} else if let Some(flags) = &config.flags {
@ -731,7 +729,7 @@ fn get_default_time_value(
Ok(default_time as u64)
}
fn get_time_interval(matches: &clap::ArgMatches<'static>, config: &Config) -> error::Result<u64> {
fn get_time_interval(matches: &clap::ArgMatches, config: &Config) -> error::Result<u64> {
let time_interval = if let Some(time_interval) = matches.value_of("time_delta") {
time_interval.parse::<u128>()?
} else if let Some(flags) = &config.flags {
@ -758,7 +756,7 @@ fn get_time_interval(matches: &clap::ArgMatches<'static>, config: &Config) -> er
Ok(time_interval as u64)
}
pub fn get_app_grouping(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
pub fn get_app_grouping(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("group") {
return true;
} else if let Some(flags) = &config.flags {
@ -769,7 +767,7 @@ pub fn get_app_grouping(matches: &clap::ArgMatches<'static>, config: &Config) ->
false
}
pub fn get_app_case_sensitive(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
pub fn get_app_case_sensitive(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("case_sensitive") {
return true;
} else if let Some(flags) = &config.flags {
@ -780,7 +778,7 @@ pub fn get_app_case_sensitive(matches: &clap::ArgMatches<'static>, config: &Conf
false
}
pub fn get_app_match_whole_word(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
pub fn get_app_match_whole_word(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("whole_word") {
return true;
} else if let Some(flags) = &config.flags {
@ -791,7 +789,7 @@ pub fn get_app_match_whole_word(matches: &clap::ArgMatches<'static>, config: &Co
false
}
pub fn get_app_use_regex(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
pub fn get_app_use_regex(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("regex") {
return true;
} else if let Some(flags) = &config.flags {
@ -802,7 +800,7 @@ pub fn get_app_use_regex(matches: &clap::ArgMatches<'static>, config: &Config) -
false
}
fn get_hide_time(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_hide_time(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("hide_time") {
return true;
} else if let Some(flags) = &config.flags {
@ -813,7 +811,7 @@ fn get_hide_time(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
false
}
fn get_autohide_time(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_autohide_time(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("autohide_time") {
return true;
} else if let Some(flags) = &config.flags {
@ -826,7 +824,7 @@ fn get_autohide_time(matches: &clap::ArgMatches<'static>, config: &Config) -> bo
}
fn get_default_widget_and_count(
matches: &clap::ArgMatches<'static>, config: &Config,
matches: &clap::ArgMatches, config: &Config,
) -> error::Result<(Option<BottomWidgetType>, u64)> {
let widget_type = if let Some(widget_type) = matches.value_of("default_widget_type") {
let parsed_widget = widget_type.parse::<BottomWidgetType>()?;
@ -878,7 +876,7 @@ fn get_default_widget_and_count(
}
}
fn get_disable_click(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_disable_click(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("disable_click") {
return true;
} else if let Some(flags) = &config.flags {
@ -889,7 +887,7 @@ fn get_disable_click(matches: &clap::ArgMatches<'static>, config: &Config) -> bo
false
}
fn get_use_old_network_legend(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_use_old_network_legend(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("use_old_network_legend") {
return true;
} else if let Some(flags) = &config.flags {
@ -900,7 +898,7 @@ fn get_use_old_network_legend(matches: &clap::ArgMatches<'static>, config: &Conf
false
}
fn get_hide_table_gap(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_hide_table_gap(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("hide_table_gap") {
return true;
} else if let Some(flags) = &config.flags {
@ -911,7 +909,7 @@ fn get_hide_table_gap(matches: &clap::ArgMatches<'static>, config: &Config) -> b
false
}
fn get_use_battery(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_use_battery(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("battery") {
return true;
} else if let Some(flags) = &config.flags {
@ -923,7 +921,7 @@ fn get_use_battery(matches: &clap::ArgMatches<'static>, config: &Config) -> bool
}
#[allow(dead_code)]
fn get_no_write(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_no_write(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("no_write") {
return true;
} else if let Some(flags) = &config.flags {
@ -972,7 +970,7 @@ fn get_ignore_list(ignore_list: &Option<IgnoreList>) -> error::Result<Option<Fil
}
pub fn get_color_scheme(
matches: &clap::ArgMatches<'static>, config: &Config,
matches: &clap::ArgMatches, config: &Config,
) -> error::Result<ColourScheme> {
if let Some(color) = matches.value_of("color") {
// Highest priority is always command line flags...
@ -998,7 +996,7 @@ pub fn get_color_scheme(
Ok(ColourScheme::Default)
}
fn get_mem_as_value(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_mem_as_value(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("mem_as_value") {
return true;
} else if let Some(flags) = &config.flags {
@ -1009,7 +1007,7 @@ fn get_mem_as_value(matches: &clap::ArgMatches<'static>, config: &Config) -> boo
false
}
fn get_is_default_tree(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_is_default_tree(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("tree") {
return true;
} else if let Some(flags) = &config.flags {
@ -1020,7 +1018,7 @@ fn get_is_default_tree(matches: &clap::ArgMatches<'static>, config: &Config) ->
false
}
fn get_show_table_scroll_position(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_show_table_scroll_position(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("show_table_scroll_position") {
return true;
} else if let Some(flags) = &config.flags {
@ -1031,7 +1029,7 @@ fn get_show_table_scroll_position(matches: &clap::ArgMatches<'static>, config: &
false
}
fn get_is_default_process_command(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_is_default_process_command(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("process_command") {
return true;
} else if let Some(flags) = &config.flags {
@ -1042,7 +1040,7 @@ fn get_is_default_process_command(matches: &clap::ArgMatches<'static>, config: &
false
}
fn get_is_advanced_kill_disabled(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_is_advanced_kill_disabled(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("disable_advanced_kill") {
return true;
} else if let Some(flags) = &config.flags {
@ -1053,7 +1051,7 @@ fn get_is_advanced_kill_disabled(matches: &clap::ArgMatches<'static>, config: &C
false
}
fn get_network_unit_type(matches: &clap::ArgMatches<'static>, config: &Config) -> DataUnit {
fn get_network_unit_type(matches: &clap::ArgMatches, config: &Config) -> DataUnit {
if matches.is_present("network_use_bytes") {
return DataUnit::Byte;
} else if let Some(flags) = &config.flags {
@ -1067,7 +1065,7 @@ fn get_network_unit_type(matches: &clap::ArgMatches<'static>, config: &Config) -
DataUnit::Bit
}
fn get_network_scale_type(matches: &clap::ArgMatches<'static>, config: &Config) -> AxisScaling {
fn get_network_scale_type(matches: &clap::ArgMatches, config: &Config) -> AxisScaling {
if matches.is_present("network_use_log") {
return AxisScaling::Log;
} else if let Some(flags) = &config.flags {
@ -1081,7 +1079,7 @@ fn get_network_scale_type(matches: &clap::ArgMatches<'static>, config: &Config)
AxisScaling::Linear
}
fn get_network_use_binary_prefix(matches: &clap::ArgMatches<'static>, config: &Config) -> bool {
fn get_network_use_binary_prefix(matches: &clap::ArgMatches, config: &Config) -> bool {
if matches.is_present("network_use_binary_prefix") {
return true;
} else if let Some(flags) = &config.flags {

View file

@ -130,9 +130,7 @@ fn test_conflicting_temps() {
.arg("-f")
.assert()
.failure()
.stderr(predicate::str::contains(
"cannot be used with one or more of the other specified arguments",
));
.stderr(predicate::str::contains("cannot be used with"));
}
#[test]