Skip to content

Commit

Permalink
Use rustfmt given by RUSTFMT env var (#4419)
Browse files Browse the repository at this point in the history
  • Loading branch information
dtolnay authored and calebcartwright committed Oct 4, 2020
1 parent 2a8ff20 commit 14d53f7
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 4 deletions.
9 changes: 8 additions & 1 deletion config_proc_macro/src/utils.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
use proc_macro2::TokenStream;
use quote::{quote, ToTokens};
use std::env;
use std::ffi::OsStr;

pub fn fold_quote<F, I, T>(input: impl Iterator<Item = I>, f: F) -> TokenStream
where
Expand All @@ -25,7 +27,12 @@ pub fn debug_with_rustfmt(input: &TokenStream) {
use std::io::Write;
use std::process::{Command, Stdio};

let mut child = Command::new("rustfmt")
let rustfmt_var = env::var_os("RUSTFMT");
let rustfmt = match &rustfmt_var {
Some(rustfmt) => rustfmt,
None => OsStr::new("rustfmt"),
};
let mut child = Command::new(rustfmt)
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.spawn()
Expand Down
14 changes: 12 additions & 2 deletions src/cargo-fmt/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ use cargo_metadata;
use std::cmp::Ordering;
use std::collections::{BTreeMap, BTreeSet};
use std::env;
use std::ffi::OsStr;
use std::fs;
use std::hash::{Hash, Hasher};
use std::io::{self, Write};
Expand Down Expand Up @@ -129,6 +130,15 @@ fn execute() -> i32 {
}
}

fn rustfmt_command() -> Command {
let rustfmt_var = env::var_os("RUSTFMT");
let rustfmt = match &rustfmt_var {
Some(rustfmt) => rustfmt,
None => OsStr::new("rustfmt"),
};
Command::new(rustfmt)
}

fn convert_message_format_to_rustfmt_args(
message_format: &str,
rustfmt_args: &mut Vec<String>,
Expand Down Expand Up @@ -205,7 +215,7 @@ fn handle_command_status(status: Result<i32, io::Error>) -> i32 {
}

fn get_rustfmt_info(args: &[String]) -> Result<i32, io::Error> {
let mut command = Command::new("rustfmt")
let mut command = rustfmt_command()
.stdout(std::process::Stdio::inherit())
.args(args)
.spawn()
Expand Down Expand Up @@ -484,7 +494,7 @@ fn run_rustfmt(
println!();
}

let mut command = Command::new("rustfmt")
let mut command = rustfmt_command()
.stdout(stdout)
.args(files)
.args(&["--edition", edition])
Expand Down
9 changes: 8 additions & 1 deletion src/format-diff/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ use serde_json as json;
use thiserror::Error;

use std::collections::HashSet;
use std::env;
use std::ffi::OsStr;
use std::io::{self, BufRead};
use std::process;

Expand Down Expand Up @@ -94,7 +96,12 @@ fn run_rustfmt(files: &HashSet<String>, ranges: &[Range]) -> Result<(), FormatDi
debug!("Files: {:?}", files);
debug!("Ranges: {:?}", ranges);

let exit_status = process::Command::new("rustfmt")
let rustfmt_var = env::var_os("RUSTFMT");
let rustfmt = match &rustfmt_var {
Some(rustfmt) => rustfmt,
None => OsStr::new("rustfmt"),
};
let exit_status = process::Command::new(rustfmt)
.args(files)
.arg("--file-lines")
.arg(ranges_as_json)
Expand Down

0 comments on commit 14d53f7

Please sign in to comment.