Revert "test"

This reverts commit 017a1702b3.
This commit is contained in:
ClementTsang 2024-01-10 23:35:54 -05:00
parent 017a1702b3
commit 23c09d3828
No known key found for this signature in database
GPG Key ID: DC3B7867D8D97095

View File

@ -109,8 +109,34 @@ macro_rules! args {
};
}
fn general_args(cmd: Command) -> Command {
let cmd = cmd.next_help_heading("General Options");
/// Workaround trait to add builder methods.
trait CommandBuilder {
fn general_args(self) -> Self;
fn style_args(self) -> Self;
fn temperature_args(self) -> Self;
fn process_args(self) -> Self;
fn cpu_args(self) -> Self;
fn mem_args(self) -> Self;
fn network_args(self) -> Self;
fn battery_args(self) -> Self;
fn gpu_args(self) -> Self;
fn other(self) -> Self;
fn add_args(self) -> Self;
}
impl CommandBuilder for Command {
fn general_args(self) -> Command {
let cmd = self.next_help_heading("General Options");
let autohide_time = Arg::new("autohide_time")
.long("autohide_time")
@ -167,7 +193,9 @@ fn general_args(cmd: Command) -> Command {
.long("show_table_scroll_position")
.action(ArgAction::SetTrue)
.help("Shows the scroll position tracker in table widgets.")
.long_help("Shows the list scroll position tracker in the widget title for table widgets.");
.long_help(
"Shows the list scroll position tracker in the widget title for table widgets.",
);
let config_location = Arg::new("config_location")
.short('C')
@ -255,7 +283,7 @@ use CPU (3) as the default instead.
.help("The timespan of data stored.")
.long_help("How much data is stored at once in terms of time. Takes a number in milliseconds or a human duration (e.g. 20m), with a minimum of 1 minute. Note higher values will take up more memory. Defaults to 10 minutes.");
cmd.args(args![
let args = args![
autohide_time,
basic,
disable_click,
@ -272,11 +300,13 @@ use CPU (3) as the default instead.
rate,
time_delta,
retention,
])
];
cmd.args(args)
}
fn style_args(cmd: Command) -> Command {
let cmd = cmd.next_help_heading("Style Options");
fn style_args(self) -> Command {
let cmd = self.next_help_heading("Style Options");
// TODO: File an issue with manpage, it cannot render charts correctly.
let color = Arg::new("color")
@ -316,8 +346,8 @@ Defaults to \"default\".
cmd.arg(color)
}
fn temperature_args(cmd: Command) -> Command {
let cmd = cmd.next_help_heading("Temperature Options");
fn temperature_args(self) -> Command {
let cmd = self.next_help_heading("Temperature Options");
let celsius = Arg::new("celsius")
.short('c')
@ -344,12 +374,13 @@ fn temperature_args(cmd: Command) -> Command {
kelvin.get_id(),
]);
cmd.args(args![celsius, fahrenheit, kelvin])
.group(temperature_group)
let args = args![celsius, fahrenheit, kelvin];
cmd.args(args).group(temperature_group)
}
fn process_args(cmd: Command) -> Command {
let cmd = cmd.next_help_heading("Process Options");
fn process_args(self) -> Command {
let cmd = self.next_help_heading("Process Options");
let case_sensitive = Arg::new("case_sensitive")
.short('S')
@ -431,8 +462,8 @@ fn process_args(cmd: Command) -> Command {
cmd.args(args)
}
fn cpu_args(cmd: Command) -> Command {
let cmd = cmd.next_help_heading("CPU Options");
fn cpu_args(self) -> Command {
let cmd = self.next_help_heading("CPU Options");
let hide_avg_cpu = Arg::new("hide_avg_cpu")
.short('a')
@ -443,11 +474,13 @@ fn cpu_args(cmd: Command) -> Command {
// let default_avg_cpu = Arg::new("");
cmd.args(args![hide_avg_cpu])
let args = args![hide_avg_cpu];
cmd.args(args)
}
fn mem_args(cmd: Command) -> Command {
let cmd = cmd.next_help_heading("Memory Options");
fn mem_args(self) -> Command {
let cmd = self.next_help_heading("Memory Options");
let mem_as_value = Arg::new("mem_as_value")
.long("mem_as_value")
@ -462,7 +495,7 @@ fn mem_args(cmd: Command) -> Command {
.action(ArgAction::SetTrue)
.help("Enable collecting and displaying cache and buffer memory.");
cmd.args(args![mem_as_value, enable_cache_memory])
cmd.args([mem_as_value, enable_cache_memory])
}
#[cfg(target_os = "windows")]
{
@ -470,8 +503,8 @@ fn mem_args(cmd: Command) -> Command {
}
}
fn network_args(cmd: Command) -> Command {
let cmd = cmd.next_help_heading("Network Options");
fn network_args(self) -> Command {
let cmd = self.next_help_heading("Network Options");
let use_old_network_legend = Arg::new("use_old_network_legend")
.long("use_old_network_legend")
@ -492,7 +525,9 @@ fn network_args(cmd: Command) -> Command {
.long("network_use_log")
.action(ArgAction::SetTrue)
.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.");
.long_help(
"Displays the network widget with a log scale. Defaults to a non-log scale.",
);
let network_use_binary_prefix = Arg::new("network_use_binary_prefix")
.long("network_use_binary_prefix")
@ -502,18 +537,20 @@ fn network_args(cmd: Command) -> Command {
"Displays the network widget with binary prefixes (i.e. kibibits, mebibits) rather than a decimal prefix (i.e. kilobits, megabits). Defaults to decimal prefixes.",
);
cmd.args(args![
let args = args![
use_old_network_legend,
network_use_bytes,
network_use_log,
network_use_binary_prefix,
])
];
cmd.args(args)
}
fn battery_args(cmd: Command) -> Command {
fn battery_args(self) -> Command {
#[cfg(feature = "battery")]
{
let cmd = cmd.next_help_heading("Battery Options");
let cmd = self.next_help_heading("Battery Options");
let battery = Arg::new("battery")
.long("battery")
@ -527,14 +564,14 @@ fn battery_args(cmd: Command) -> Command {
}
#[cfg(not(feature = "battery"))]
{
cmd
self
}
}
fn gpu_args(cmd: Command) -> Command {
fn gpu_args(self) -> Command {
#[cfg(feature = "gpu")]
{
let cmd = cmd.next_help_heading("GPU Options");
let cmd = self.next_help_heading("GPU Options");
let enable_gpu = Arg::new("enable_gpu")
.long("enable_gpu")
@ -545,12 +582,12 @@ fn gpu_args(cmd: Command) -> Command {
}
#[cfg(not(feature = "gpu"))]
{
cmd
self
}
}
fn other_args(cmd: Command) -> Command {
let cmd = cmd.next_help_heading("Other Options");
fn other(self) -> Command {
let cmd = self.next_help_heading("Other Options");
let help = Arg::new("help")
.short('h')
@ -567,6 +604,20 @@ fn other_args(cmd: Command) -> Command {
cmd.args([help, version])
}
fn add_args(self) -> Self {
self.general_args()
.style_args()
.temperature_args()
.process_args()
.cpu_args()
.mem_args()
.network_args()
.battery_args()
.gpu_args()
.other()
}
}
pub fn build_app() -> Command {
const TEMPLATE: &str = include_str!("./args.template");
const USAGE: &str = "btm [OPTIONS]";
@ -575,7 +626,7 @@ pub fn build_app() -> Command {
None => crate_version!(),
};
let cmd = Command::new(crate_name!())
Command::new(crate_name!())
.author(crate_authors!())
.about(crate_description!())
.disable_help_flag(true)
@ -583,21 +634,8 @@ pub fn build_app() -> Command {
.color(ColorChoice::Auto)
.help_template(TEMPLATE)
.override_usage(USAGE)
.version(VERSION);
let cmd = general_args(cmd);
let cmd = style_args(cmd);
let cmd = temperature_args(cmd);
let cmd = process_args(cmd);
let cmd = cpu_args(cmd);
let cmd = mem_args(cmd);
let cmd = network_args(cmd);
let cmd = battery_args(cmd);
let cmd = gpu_args(cmd);
let cmd = other_args(cmd);
#[allow(clippy::let_and_return)]
cmd
.version(VERSION)
.add_args()
}
#[cfg(test)]