Merge pull request #676 from blerchy/feat/no-emoji

Replace emojis when NO_EMOJI env variable present
This commit is contained in:
marisa 2021-03-22 13:36:26 +01:00 committed by GitHub
commit b350945a16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 13 deletions

View File

@ -1,3 +1,4 @@
use std::env;
use regex::Regex;
use serde::Deserialize;
use std::fmt::{self, Display, Formatter};
@ -126,8 +127,13 @@ name = "{}"
path = "{}.rs""#,
self.name, self.name, self.name
);
let cargo_toml_error_msg = if env::var("NO_EMOJI").is_ok() {
"Failed to write Clippy Cargo.toml file."
} else {
"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

View File

@ -1,23 +1,41 @@
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()
);
if env::var("NO_EMOJI").is_ok() {
println!(
"{} {}",
style("!").red(),
style(formatstr).red()
);
} else {
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()
);
if env::var("NO_EMOJI").is_ok() {
println!(
"{} {}",
style("βœ“").green(),
style(formatstr).green()
);
} else {
println!(
"{} {}",
style(Emoji("βœ…", "βœ“")).green(),
style(formatstr).green()
);
}
}};
}

View File

@ -1,3 +1,4 @@
use std::env;
use crate::exercise::{CompiledExercise, Exercise, Mode, State};
use console::style;
use indicatif::ProgressBar;
@ -137,14 +138,26 @@ 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 = if no_emoji {
"The code is compiling, and Clippy is happy!"
} else {
"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);
if no_emoji {
println!("~*~ {} ~*~", success_msg)
} else {
println!("πŸŽ‰ πŸŽ‰ {} πŸŽ‰ πŸŽ‰", success_msg)
}
println!();
if let Some(output) = prompt_output {