1+ use std::io::Write;
12use std::ops::Not;
23use std::path::PathBuf;
3- use std:: { env, net, process} ;
4- use std:: io:: Write ;
54use std::time::Duration;
6- use anyhow:: { anyhow, bail, Context } ;
7- use xshell:: { cmd, Shell } ;
5+ use std::{env, net, process};
6+
7+ use anyhow::{Context, anyhow, bail};
8+ use xshell::{Shell, cmd};
89
910/// Used for rustc syncs.
1011const JOSH_FILTER: &str = ":/src/doc/rustc-dev-guide";
@@ -15,10 +16,13 @@ pub enum RustcPullError {
1516 /// No changes are available to be pulled.
1617 NothingToPull,
1718 /// A rustc-pull has failed, probably a git operation error has occurred.
18- PullFailed ( anyhow:: Error )
19+ PullFailed(anyhow::Error),
1920}
2021
21- impl < E > From < E > for RustcPullError where E : Into < anyhow:: Error > {
22+ impl<E> From<E> for RustcPullError
23+ where
24+ E: Into<anyhow::Error>,
25+ {
2226 fn from(error: E) -> Self {
2327 Self::PullFailed(error.into())
2428 }
@@ -32,9 +36,7 @@ pub struct GitSync {
3236/// (https://github.com/rust-lang/miri/blob/6a68a79f38064c3bc30617cca4bdbfb2c336b140/miri-script/src/commands.rs#L236).
3337impl GitSync {
3438 pub fn from_current_dir() -> anyhow::Result<Self> {
35- Ok ( Self {
36- dir : std:: env:: current_dir ( ) ?
37- } )
39+ Ok(Self { dir: std::env::current_dir()? })
3840 }
3941
4042 pub fn rustc_pull(&self, commit: Option<String>) -> Result<(), RustcPullError> {
@@ -51,7 +53,10 @@ impl GitSync {
5153 })?;
5254 // Make sure the repo is clean.
5355 if cmd!(sh, "git status --untracked-files=no --porcelain").read()?.is_empty().not() {
54- return Err ( anyhow:: anyhow!( "working directory must be clean before performing rustc pull" ) . into ( ) ) ;
56+ return Err(anyhow::anyhow!(
57+ "working directory must be clean before performing rustc pull"
58+ )
59+ .into());
5560 }
5661 // Make sure josh is running.
5762 let josh = Self::start_josh()?;
@@ -94,26 +99,33 @@ impl GitSync {
9499 };
95100 let num_roots_before = num_roots()?;
96101
97- let sha = cmd ! ( sh, "git rev-parse HEAD" ) . output ( ) . context ( "FAILED to get current commit" ) ?. stdout ;
102+ let sha =
103+ cmd!(sh, "git rev-parse HEAD").output().context("FAILED to get current commit")?.stdout;
98104
99105 // Merge the fetched commit.
100106 const MERGE_COMMIT_MESSAGE: &str = "Merge from rustc";
101107 cmd!(sh, "git merge FETCH_HEAD --no-verify --no-ff -m {MERGE_COMMIT_MESSAGE}")
102108 .run()
103109 .context("FAILED to merge new commits, something went wrong")?;
104110
105- let current_sha = cmd ! ( sh, "git rev-parse HEAD" ) . output ( ) . context ( "FAILED to get current commit" ) ?. stdout ;
111+ let current_sha =
112+ cmd!(sh, "git rev-parse HEAD").output().context("FAILED to get current commit")?.stdout;
106113 if current_sha == sha {
107114 cmd!(sh, "git reset --hard HEAD^")
108115 .run()
109116 .expect("FAILED to clean up after creating the preparation commit");
110- eprintln ! ( "No merge was performed, no changes to pull were found. Rolled back the preparation commit." ) ;
117+ eprintln!(
118+ "No merge was performed, no changes to pull were found. Rolled back the preparation commit."
119+ );
111120 return Err(RustcPullError::NothingToPull);
112121 }
113122
114123 // Check that the number of roots did not increase.
115124 if num_roots()? != num_roots_before {
116- return Err ( anyhow:: anyhow!( "Josh created a new root commit. This is probably not the history you want." ) . into ( ) ) ;
125+ return Err(anyhow::anyhow!(
126+ "Josh created a new root commit. This is probably not the history you want."
127+ )
128+ .into());
117129 }
118130
119131 drop(josh);
0 commit comments