Skip to content

Commit 4fa8d85

Browse files
committed
Fix tar directory
1 parent fa3aa7b commit 4fa8d85

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

rust-install/src/install.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,26 @@ impl<'a> InstallMethod<'a> {
116116

117117
try!(utils::cmd_status("tar", cmd));
118118

119+
// Find the root Rust folder within the subfolder
120+
let root_dir = try!(try!(utils::read_dir("install", work_dir))
121+
.filter_map(io::Result::ok)
122+
.map(|e| e.path())
123+
.filter(|p| utils::is_directory(&p))
124+
.next()
125+
.ok_or(Error::InvalidInstaller));
126+
119127
let mut cmd = Command::new("sh");
120128
cmd
121-
.arg(installer_dir.join("install.sh"))
129+
.arg(root_dir.join("install.sh"))
122130
.arg("--prefix").arg(&prefix.path);
123131

124132
if prefix.install_type != InstallType::Shared {
125133
cmd.arg("--disable-ldconfig");
126134
}
127135

128136
let result = utils::cmd_status("sh", cmd);
137+
138+
let _ = fs::remove_dir_all(&installer_dir);
129139

130140
if result.is_err() && prefix.install_type == InstallType::Owned {
131141
let _ = fs::remove_dir_all(&prefix.path);
@@ -153,7 +163,7 @@ impl<'a> InstallMethod<'a> {
153163
.filter(|p| utils::is_directory(&p))
154164
.next()
155165
.ok_or(Error::InvalidInstaller));
156-
166+
157167
// Rename and move it to the toolchain directory
158168
utils::rename_dir("install", &root_dir, &prefix.path)
159169
};

0 commit comments

Comments
 (0)