summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Lebl <lebl.matt@gmail.com>2021-03-19 02:16:07 -0700
committerMatt Lebl <lebl.matt@gmail.com>2021-03-19 02:16:07 -0700
commit8d62a9963708dbecd9312e8bcc4b47049c72d155 (patch)
tree3c5b973e1f1250624b709544e0d60bd607bf87a1
parent0d894e6ff739943901e1ae8c904582e5c2f843bd (diff)
feat: Replace emojis when NO_EMOJI env variable present
-rw-r--r--src/exercise.rs7
-rw-r--r--src/ui.rs44
-rw-r--r--src/verify.rs15
3 files changed, 53 insertions, 13 deletions
diff --git a/src/exercise.rs b/src/exercise.rs
index 18e8d5a..2c5d835 100644
--- a/src/exercise.rs
+++ b/src/exercise.rs
@@ -1,3 +1,4 @@
+use std::env;
use regex::Regex;
use serde::Deserialize;
use std::fmt::{self, Display, Formatter};
@@ -126,8 +127,12 @@ name = "{}"
path = "{}.rs""#,
self.name, self.name, self.name
);
+ let cargo_toml_error_msg = match env::var("NO_EMOJI").is_ok() {
+ true => "Failed to write Clippy Cargo.toml file.",
+ false => "Failed to write 📎 Clippy 📎 Cargo.toml file."
+ };
fs::write(CLIPPY_CARGO_TOML_PATH, cargo_toml)
- .expect("Failed to write 📎 Clippy 📎 Cargo.toml file.");
+ .expect(cargo_toml_error_msg);
// To support the ability to run the clipy exercises, build
// an executable, in addition to running clippy. With a
// compilation failure, this would silently fail. But we expect
diff --git a/src/ui.rs b/src/ui.rs
index 38cbaa4..7ab8754 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -1,23 +1,47 @@
macro_rules! warn {
($fmt:literal, $ex:expr) => {{
+ use std::env;
use console::{style, Emoji};
let formatstr = format!($fmt, $ex);
- println!(
- "{} {}",
- style(Emoji("⚠️ ", "!")).red(),
- style(formatstr).red()
- );
+ match env::var("NO_EMOJI").is_ok() {
+ true => {
+ println!(
+ "{} {}",
+ style("!").red(),
+ style(formatstr).red()
+ );
+ },
+ false => {
+ println!(
+ "{} {}",
+ style(Emoji("⚠️ ", "!")).red(),
+ style(formatstr).red()
+ );
+ }
+ }
}};
}
macro_rules! success {
($fmt:literal, $ex:expr) => {{
+ use std::env;
use console::{style, Emoji};
let formatstr = format!($fmt, $ex);
- println!(
- "{} {}",
- style(Emoji("✅", "✓")).green(),
- style(formatstr).green()
- );
+ match env::var("NO_EMOJI").is_ok() {
+ true => {
+ println!(
+ "{} {}",
+ style("✓").green(),
+ style(formatstr).green()
+ );
+ },
+ false => {
+ println!(
+ "{} {}",
+ style(Emoji("✅", "✓")).green(),
+ style(formatstr).green()
+ );
+ }
+ }
}};
}
diff --git a/src/verify.rs b/src/verify.rs
index 00e45c8..04acfc6 100644
--- a/src/verify.rs
+++ b/src/verify.rs
@@ -1,3 +1,4 @@
+use std::env;
use crate::exercise::{CompiledExercise, Exercise, Mode, State};
use console::style;
use indicatif::ProgressBar;
@@ -137,14 +138,24 @@ fn prompt_for_completion(exercise: &Exercise, prompt_output: Option<String>) ->
State::Pending(context) => context,
};
+ let no_emoji = env::var("NO_EMOJI").is_ok();
+
+ let clippy_success_msg = match no_emoji {
+ true => "The code is compiling, and Clippy is happy!",
+ false => "The code is compiling, and 📎 Clippy 📎 is happy!"
+ };
+
let success_msg = match exercise.mode {
Mode::Compile => "The code is compiling!",
Mode::Test => "The code is compiling, and the tests pass!",
- Mode::Clippy => "The code is compiling, and 📎 Clippy 📎 is happy!",
+ Mode::Clippy => clippy_success_msg,
};
println!();
- println!("🎉 🎉 {} 🎉 🎉", success_msg);
+ match no_emoji {
+ true => println!("~*~ {} ~*~", success_msg),
+ false => println!("🎉 🎉 {} 🎉 🎉", success_msg)
+ };
println!();
if let Some(output) = prompt_output {