Allow xtask::reformat to work without rustup
This commit is contained in:
parent
e69d57f16f
commit
6b15103152
@ -126,27 +126,35 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn ensure_rustfmt(sh: &Shell) {
|
|
||||||
let version = cmd!(sh, "rustup run stable rustfmt --version").read().unwrap_or_default();
|
|
||||||
if !version.contains("stable") {
|
|
||||||
panic!(
|
|
||||||
"Failed to run rustfmt from toolchain 'stable'. \
|
|
||||||
Please run `rustup component add rustfmt --toolchain stable` to install it.",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn reformat(text: String) -> String {
|
fn reformat(text: String) -> String {
|
||||||
let sh = Shell::new().unwrap();
|
let sh = Shell::new().unwrap();
|
||||||
ensure_rustfmt(&sh);
|
|
||||||
let rustfmt_toml = project_root().join("rustfmt.toml");
|
let rustfmt_toml = project_root().join("rustfmt.toml");
|
||||||
let mut stdout = cmd!(
|
let version = cmd!(sh, "rustup run stable rustfmt --version").read().unwrap_or_default();
|
||||||
sh,
|
|
||||||
"rustup run stable rustfmt --config-path {rustfmt_toml} --config fn_single_line=true"
|
// First try explicitly requesting the stable channel via rustup in case nightly is being used by default,
|
||||||
)
|
// then plain rustfmt in case rustup isn't being used to manage the compiler (e.g. when using Nix).
|
||||||
.stdin(text)
|
let mut stdout = if !version.contains("stable") {
|
||||||
.read()
|
let version = cmd!(sh, "rustfmt --version").read().unwrap_or_default();
|
||||||
.unwrap();
|
if !version.contains("stable") {
|
||||||
|
panic!(
|
||||||
|
"Failed to run rustfmt from toolchain 'stable'. \
|
||||||
|
Please run `rustup component add rustfmt --toolchain stable` to install it.",
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
cmd!(sh, "rustfmt --config-path {rustfmt_toml} --config fn_single_line=true")
|
||||||
|
.stdin(text)
|
||||||
|
.read()
|
||||||
|
.unwrap()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cmd!(
|
||||||
|
sh,
|
||||||
|
"rustup run stable rustfmt --config-path {rustfmt_toml} --config fn_single_line=true"
|
||||||
|
)
|
||||||
|
.stdin(text)
|
||||||
|
.read()
|
||||||
|
.unwrap()
|
||||||
|
};
|
||||||
if !stdout.ends_with('\n') {
|
if !stdout.ends_with('\n') {
|
||||||
stdout.push('\n');
|
stdout.push('\n');
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user