Commit e4574939 authored by Benoit Daloze's avatar Benoit Daloze
Browse files

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".
parent 9d1333e5
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -350,6 +350,7 @@ fetch_tarball() {
  local package_url="$2"
  local mirror_url
  local checksum
  local extracted_dir

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

  { if tar $tar_args "$package_filename"; then
      if [ ! -d "$package_name" ]; then
        extracted_dir=$(find_extracted_directory)
        mv "$extracted_dir" "$package_name"
      fi

      if [ -z "$KEEP_BUILD_PATH" ]; then
        rm -f "$package_filename"
      else
@@ -391,6 +397,17 @@ fetch_tarball() {
  } >&4 2>&1
}

find_extracted_directory() {
  for f in *; do
    if [ -d "$f" ]; then
      echo "$f"
      return
    fi
  done
  echo "Extracted directory not found" >&2
  return 1
}

reuse_existing_tarball() {
  local package_filename="$1"
  local checksum="$2"