Skip to content

Commit e457493

Browse files
committed
Rename the extracted directory if it is not the same as the package name
* make_package() assumes the archive was extracted to $package_name. * fetch_tarball() does not check the name of the toplevel directory in the archive, so rename after if it's not exactly "$package_name".
1 parent 9d1333e commit e457493

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

bin/ruby-build

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ fetch_tarball() {
350350
local package_url="$2"
351351
local mirror_url
352352
local checksum
353+
local extracted_dir
353354

354355
if [ "$package_url" != "${package_url/\#}" ]; then
355356
checksum="${package_url#*#}"
@@ -382,6 +383,11 @@ fetch_tarball() {
382383
fi
383384

384385
{ if tar $tar_args "$package_filename"; then
386+
if [ ! -d "$package_name" ]; then
387+
extracted_dir=$(find_extracted_directory)
388+
mv "$extracted_dir" "$package_name"
389+
fi
390+
385391
if [ -z "$KEEP_BUILD_PATH" ]; then
386392
rm -f "$package_filename"
387393
else
@@ -391,6 +397,17 @@ fetch_tarball() {
391397
} >&4 2>&1
392398
}
393399

400+
find_extracted_directory() {
401+
for f in *; do
402+
if [ -d "$f" ]; then
403+
echo "$f"
404+
return
405+
fi
406+
done
407+
echo "Extracted directory not found" >&2
408+
return 1
409+
}
410+
394411
reuse_existing_tarball() {
395412
local package_filename="$1"
396413
local checksum="$2"

0 commit comments

Comments
 (0)