mirror of
https://github.com/rust-lang/rustlings.git
synced 2024-12-26 23:36:30 +00:00
feat: Replace emojis when NO_EMOJI env variable present
This commit is contained in:
parent
0d894e6ff7
commit
8d62a99637
3 changed files with 53 additions and 13 deletions
|
@ -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
|
||||
|
|
44
src/ui.rs
44
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()
|
||||
);
|
||||
}
|
||||
}
|
||||
}};
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue