Skip to content

Commit e95bc96

Browse files
authored
Merge pull request #1389 from cyplo/prefactoring-for-rename-fix
Make sure rustup uses utils::rename* consistently.
2 parents ef83098 + edaef95 commit e95bc96

File tree

3 files changed

+17
-21
lines changed

3 files changed

+17
-21
lines changed

src/rustup-dist/src/download.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ impl<'a> DownloadCfg<'a> {
8585
}.into());
8686
} else {
8787
(self.notify_handler)(Notification::ChecksumValid(&url.to_string()));
88-
try!(fs::rename(&partial_file_path, &target_file));
88+
89+
utils::rename_file("downloaded", &partial_file_path, &target_file)?;
8990
return Ok(File { path: target_file });
9091
}
9192
}

src/rustup-utils/src/utils.rs

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -79,23 +79,11 @@ pub fn write_str(name: &'static str, file: &mut File, path: &Path, s: &str) -> R
7979
}
8080

8181
pub fn rename_file(name: &'static str, src: &Path, dest: &Path) -> Result<()> {
82-
fs::rename(src, dest).chain_err(|| {
83-
ErrorKind::RenamingFile {
84-
name: name,
85-
src: PathBuf::from(src),
86-
dest: PathBuf::from(dest),
87-
}
88-
})
82+
rename(name, src, dest)
8983
}
9084

9185
pub fn rename_dir(name: &'static str, src: &Path, dest: &Path) -> Result<()> {
92-
fs::rename(src, dest).chain_err(|| {
93-
ErrorKind::RenamingDirectory {
94-
name: name,
95-
src: PathBuf::from(src),
96-
dest: PathBuf::from(dest),
97-
}
98-
})
86+
rename(name, src, dest)
9987
}
10088

10189
pub fn filter_file<F: FnMut(&str) -> bool>(name: &'static str,
@@ -604,8 +592,7 @@ pub fn do_rustup_home_upgrade() -> bool {
604592
fn rename_rustup_dir_to_rustup_sh() -> Result<()> {
605593
let dirs = (rustup_dir(), rustup_sh_dir());
606594
if let (Some(rustup), Some(rustup_sh)) = dirs {
607-
fs::rename(&rustup, &rustup_sh)
608-
.chain_err(|| "unable to rename rustup dir")?;
595+
rename_dir("installation", &rustup, &rustup_sh).chain_err(|| "unable to rename rustup dir")?;
609596
}
610597

611598
Ok(())
@@ -614,8 +601,7 @@ pub fn do_rustup_home_upgrade() -> bool {
614601
fn rename_multirust_dir_to_rustup() -> Result<()> {
615602
let dirs = (multirust_dir(), rustup_dir());
616603
if let (Some(rustup), Some(rustup_sh)) = dirs {
617-
fs::rename(&rustup, &rustup_sh)
618-
.chain_err(|| "unable to rename multirust dir")?;
604+
rename_dir("multirust installation", &rustup, &rustup_sh).chain_err(|| "unable to rename multirust dir")?;
619605
}
620606

621607
Ok(())
@@ -831,6 +817,15 @@ pub fn toolchain_sort<T: AsRef<str>>(v: &mut Vec<T>) {
831817
});
832818
}
833819

820+
fn rename(name: &'static str, src: &Path, dest: &Path) -> Result<()> {
821+
fs::rename(src, dest).chain_err(|| {
822+
ErrorKind::RenamingFile {
823+
name: name,
824+
src: PathBuf::from(src),
825+
dest: PathBuf::from(dest),
826+
}
827+
})
828+
}
834829

835830
#[cfg(test)]
836831
mod tests {

tests/cli-self-upd.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,7 @@ fn rustup_init_works_with_weird_names() {
935935
&format!("rustup-init{}", EXE_SUFFIX));
936936
let ref new = config.exedir.join(
937937
&format!("rustup-init(2){}", EXE_SUFFIX));
938-
fs::rename(old, new).unwrap();
938+
utils::rename_file("test", old, new).unwrap();
939939
expect_ok(config, &["rustup-init(2)", "-y"]);
940940
let rustup = config.cargodir.join(&format!("bin/rustup{}", EXE_SUFFIX));
941941
assert!(rustup.exists());
@@ -1181,7 +1181,7 @@ fn install_over_unupgraded_multirust_dir() {
11811181
// Move .rustup to .multirust so the next rustup-init will be
11821182
// an upgrade from ~/.multirust to ~/.rustup
11831183
raw::remove_dir(&multirust_dir).unwrap();
1184-
fs::rename(&rustup_dir, &multirust_dir).unwrap();
1184+
utils::rename_file("test", &rustup_dir, &multirust_dir).unwrap();
11851185
assert!(!rustup_dir.exists());
11861186
assert!(multirust_dir.exists());
11871187

0 commit comments

Comments
 (0)