summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClementTsang <cjhtsang@uwaterloo.ca>2020-11-21 14:49:44 -0500
committerClementTsang <cjhtsang@uwaterloo.ca>2020-11-21 14:49:44 -0500
commit99d04029f0ebfc73d36adb06ea58ad68f090017c (patch)
treea6b02fbb7eb76552109e69c76b26c6ff1a199cec
parent6ef1d66b2bca49452572a2cabb87d338dcf56e7b (diff)
bug: [skip travis] Add a better check for default colors in the config file
-rw-r--r--.vscode/settings.json1
-rw-r--r--src/constants.rs4
-rw-r--r--src/options.rs25
3 files changed, 25 insertions, 5 deletions
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 0ebd8ca7..accd5163 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -86,6 +86,7 @@
"regexes",
"rsplitn",
"runlevel",
+ "rustflags",
"rustfmt",
"shilangyu",
"softirq",
diff --git a/src/constants.rs b/src/constants.rs
index b633aca7..452e235e 100644
--- a/src/constants.rs
+++ b/src/constants.rs
@@ -355,7 +355,7 @@ pub const OLD_CONFIG_TEXT: &str = r##"# This is a default config file for bottom
# This group of options represents a command-line flag/option. Flags explicitly
# added when running (ie: btm -a) will override this config file if an option
# is also set here.
-[flags]
+#[flags]
# Whether to hide the average cpu entry.
#hide_avg_cpu = false
# Whether to use dot markers rather than braille.
@@ -405,7 +405,7 @@ pub const OLD_CONFIG_TEXT: &str = r##"# This is a default config file for bottom
# These are all the components that support custom theming. Note that colour support
# will depend on terminal support.
-[colors]
+#[colors]
# Represents the colour of table headers (processes, CPU, disks, temperature).
#table_header_color="LightBlue"
# Represents the colour of the label each widget has.
diff --git a/src/options.rs b/src/options.rs
index 21da8427..7e8da0a7 100644
--- a/src/options.rs
+++ b/src/options.rs
@@ -192,6 +192,18 @@ pub struct ConfigColours {
pub low_battery_color: Option<String>,
}
+impl ConfigColours {
+ pub fn is_empty(&self) -> bool {
+ if let Ok(serialized_string) = toml::to_string(self) {
+ if !serialized_string.is_empty() {
+ return false;
+ }
+ }
+
+ true
+ }
+}
+
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct IgnoreList {
pub is_list_ignored: bool,
@@ -918,9 +930,16 @@ pub fn get_color_scheme(
if let Some(color) = matches.value_of("color") {
// Highest priority is always command line flags...
return ColourScheme::from_str(color);
- } else if config.colors.is_some() {
- // Then, give priority to custom colours...
- return Ok(ColourScheme::Custom);
+ } else if let Some(colors) = &config.colors {
+ if !colors.is_empty() {
+ // Then, give priority to custom colours...
+ return Ok(ColourScheme::Custom);
+ } else if let Some(flags) = &config.flags {
+ // Last priority is config file flags...
+ if let Some(color) = &flags.color {
+ return ColourScheme::from_str(color);
+ }
+ }
} else if let Some(flags) = &config.flags {
// Last priority is config file flags...
if let Some(color) = &flags.color {