Files
arrow/ci/scripts/util_download_apache.sh
Hiroyuki Sato 9dfc3afb29 GH-48174: [CI][Dev] Fix shellcheck errors in ci/scripts/util_download_apache.sh (#48175)
### Rationale for this change

This is the sub issue #44748.

* SC2048: Use "$@" (with quotes) to prevent whitespace problems.
* SC2181: Check exit code directly with e.g. if mycmd;, not indirectly with $?.

```
In ci/scripts/util_download_apache.sh line 47:
for mirror in ${APACHE_MIRRORS[*]}
              ^------------------^ SC2048 (warning): Use "${array[@]}" (with quotes) to prevent whitespace problems.

In ci/scripts/util_download_apache.sh line 50:
  if [ $? == 0 ]; then
       ^-- SC2181 (style): Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.

For more information:
  https://www.shellcheck.net/wiki/SC2048 -- Use "${array[@]}" (with quotes) t...
  https://www.shellcheck.net/wiki/SC2181 -- Check exit code directly with e.g...
```

### What changes are included in this PR?

* SC2048: Use `"${APACHE_MIRRORS[@]}"` instead of `${APACHE_MIRRORS[*]}`.
* Sc2181: Use `if cmd ; then` statement instead of `$?`.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

No.
* GitHub Issue: #48174

Authored-by: Hiroyuki Sato <hiroysato@gmail.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
2025-11-20 09:27:07 +01:00

55 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
set -x
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <apache tarball path> <target directory>"
exit 1
fi
tarball_path=$1
target_dir=$2
APACHE_MIRRORS=(
"http://www.apache.org/dyn/closer.cgi?action=download&filename="
"https://downloads.apache.org"
"https://apache.claz.org"
"https://apache.cs.utah.edu"
"https://apache.mirrors.lucidnetworks.net"
"https://apache.osuosl.org"
"https://ftp.wayne.edu/apache"
"https://mirror.olnevhost.net/pub/apache"
"https://mirrors.gigenet.com/apache"
"https://mirrors.koehn.com/apache"
"https://mirrors.ocf.berkeley.edu/apache"
"https://mirrors.sonic.net/apache"
"https://us.mirrors.quenda.co/apache"
)
mkdir -p "${target_dir}"
for mirror in "${APACHE_MIRRORS[@]}"
do
if curl -SL "${mirror}/${tarball_path}" | tar -xzf - -C "${target_dir}"; then
exit 0
fi
done
exit 1