From 05260f4565eb51c9364cc1c0b515b152089d703f Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Wed, 21 Apr 2021 20:51:50 +0900 Subject: [PATCH 1/3] utils/lock.sh: repair style --- Library/Homebrew/utils/lock.sh | 36 ++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/Library/Homebrew/utils/lock.sh b/Library/Homebrew/utils/lock.sh index 060941d78a..010ea5ca14 100644 --- a/Library/Homebrew/utils/lock.sh +++ b/Library/Homebrew/utils/lock.sh @@ -1,17 +1,19 @@ # create a lock using `flock(2)`. A name is required as first argument. # the lock will be automatically unlocked when the shell process quits. # Noted due to the fixed FD, a shell process can only create one lock. +# HOMEBREW_PREFIX is set by extend/ENV/super.rb +# shellcheck disable=SC2154 lock() { local name="$1" - local lock_dir="$HOMEBREW_PREFIX/var/homebrew/locks" - local lock_file="$lock_dir/$name" - [[ -d "$lock_dir" ]] || mkdir -p "$lock_dir" - if ! [[ -w "$lock_dir" ]] + local lock_dir="${HOMEBREW_PREFIX}/var/homebrew/locks" + local lock_file="${lock_dir}/${name}" + [[ -d "${lock_dir}" ]] || mkdir -p "${lock_dir}" + if ! [[ -w "${lock_dir}" ]] then odie <&- # open the lock file to FD, so the shell process can hold the lock. - exec 200>"$lock_file" - if ! _create_lock 200 "$name" + exec 200>"${lock_file}" + if ! _create_lock 200 "${name}" then odie <= '1.8.7')" + if [[ -x "${ruby}" ]] && "${ruby}" -e "exit(RUBY_VERSION >= '1.8.7')" then - "$ruby" -e "File.new($lock_fd).flock(File::LOCK_EX | File::LOCK_NB) || exit(1)" - elif [[ -x "$python" ]] + "${ruby}" -e "File.new(${lock_fd}).flock(File::LOCK_EX | File::LOCK_NB) || exit(1)" + elif [[ -x "${python}" ]] then - "$python" -c "import fcntl; fcntl.flock($lock_fd, fcntl.LOCK_EX | fcntl.LOCK_NB)" + "${python}" -c "import fcntl; fcntl.flock(${lock_fd}, fcntl.LOCK_EX | fcntl.LOCK_NB)" elif [[ -x "$(type -P flock)" ]] then - flock -n "$lock_fd" + flock -n "${lock_fd}" else - onoe "Cannot create $name lock, please avoid running Homebrew in parallel." + onoe "Cannot create ${name} lock, please avoid running Homebrew in parallel." fi } From d3b07d078fba07efec0a67cbd4cadff8daff2cbd Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Wed, 21 Apr 2021 21:12:27 +0900 Subject: [PATCH 2/3] utils/analytics.sh: repair style --- Library/Homebrew/utils/analytics.sh | 35 ++++++++++++++++------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/Library/Homebrew/utils/analytics.sh b/Library/Homebrew/utils/analytics.sh index 456e2d5490..fe26e0bbed 100644 --- a/Library/Homebrew/utils/analytics.sh +++ b/Library/Homebrew/utils/analytics.sh @@ -1,43 +1,46 @@ # Migrate analytics UUID to its new home in Homebrew repo's git config and # remove the legacy UUID file if detected. +# HOMEBREW_LINUX, HOMEBREW_REPOSITORY is set by bin/brew +# HOMEBREW_NO_ANALYTICS is from the user environment. +# shellcheck disable=SC2154 migrate-legacy-uuid-file() { local legacy_uuid_file analytics_uuid - legacy_uuid_file="$HOME/.homebrew_analytics_user_uuid" + legacy_uuid_file="${HOME}/.homebrew_analytics_user_uuid" - if [[ -f "$legacy_uuid_file" ]] + if [[ -f "${legacy_uuid_file}" ]] then - analytics_uuid="$(<"$legacy_uuid_file")" - if [[ -n "$analytics_uuid" ]] + analytics_uuid="$(<"${legacy_uuid_file}")" + if [[ -n "${analytics_uuid}" ]] then - git config --file="$HOMEBREW_REPOSITORY/.git/config" --replace-all homebrew.analyticsuuid "$analytics_uuid" 2>/dev/null + git config --file="${HOMEBREW_REPOSITORY}/.git/config" --replace-all homebrew.analyticsuuid "${analytics_uuid}" 2>/dev/null fi - rm -f "$legacy_uuid_file" + rm -f "${legacy_uuid_file}" fi } setup-analytics() { - local git_config_file="$HOMEBREW_REPOSITORY/.git/config" + local git_config_file="${HOMEBREW_REPOSITORY}/.git/config" migrate-legacy-uuid-file - if [[ -n "$HOMEBREW_NO_ANALYTICS" ]] + if [[ -n "${HOMEBREW_NO_ANALYTICS}" ]] then return fi local message_seen analytics_disabled - message_seen="$(git config --file="$git_config_file" --get homebrew.analyticsmessage 2>/dev/null)" - analytics_disabled="$(git config --file="$git_config_file" --get homebrew.analyticsdisabled 2>/dev/null)" - if [[ "$message_seen" != "true" || "$analytics_disabled" = "true" ]] + message_seen="$(git config --file="${git_config_file}" --get homebrew.analyticsmessage 2>/dev/null)" + analytics_disabled="$(git config --file="${git_config_file}" --get homebrew.analyticsdisabled 2>/dev/null)" + if [[ "${message_seen}" != "true" || "${analytics_disabled}" = "true" ]] then # Internal variable for brew's use, to differentiate from user-supplied setting export HOMEBREW_NO_ANALYTICS_THIS_RUN="1" return fi - HOMEBREW_ANALYTICS_USER_UUID="$(git config --file="$git_config_file" --get homebrew.analyticsuuid 2>/dev/null)" - if [[ -z "$HOMEBREW_ANALYTICS_USER_UUID" ]] + HOMEBREW_ANALYTICS_USER_UUID="$(git config --file="${git_config_file}" --get homebrew.analyticsuuid 2>/dev/null)" + if [[ -z "${HOMEBREW_ANALYTICS_USER_UUID}" ]] then if [[ -x /usr/bin/uuidgen ]] then @@ -49,16 +52,16 @@ setup-analytics() { HOMEBREW_ANALYTICS_USER_UUID="$(uuidgen)" fi - if [[ -z "$HOMEBREW_ANALYTICS_USER_UUID" ]] + if [[ -z "${HOMEBREW_ANALYTICS_USER_UUID}" ]] then # Avoid sending bogus analytics if no UUID could be generated. export HOMEBREW_NO_ANALYTICS_THIS_RUN="1" return fi - git config --file="$git_config_file" --replace-all homebrew.analyticsuuid "$HOMEBREW_ANALYTICS_USER_UUID" 2>/dev/null + git config --file="${git_config_file}" --replace-all homebrew.analyticsuuid "${HOMEBREW_ANALYTICS_USER_UUID}" 2>/dev/null fi - if [[ -n "$HOMEBREW_LINUX" ]] + if [[ -n "${HOMEBREW_LINUX}" ]] then # For Homebrew on Linux's analytics. HOMEBREW_ANALYTICS_ID="UA-76492262-1" From 2b6afea8edc72c500f5d0ca285eef60a2bbd6e69 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Wed, 21 Apr 2021 22:19:35 +0900 Subject: [PATCH 3/3] utils/ruby.sh: repair style --- Library/Homebrew/utils/ruby.sh | 68 +++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/Library/Homebrew/utils/ruby.sh b/Library/Homebrew/utils/ruby.sh index 7d09e4d83a..fe1e686f01 100644 --- a/Library/Homebrew/utils/ruby.sh +++ b/Library/Homebrew/utils/ruby.sh @@ -1,5 +1,7 @@ export HOMEBREW_REQUIRED_RUBY_VERSION=2.6.3 +# HOMEBREW_LIBRARY is from the user environment +# shellcheck disable=SC2154 test_ruby() { if [[ ! -x $1 ]] then @@ -7,20 +9,23 @@ test_ruby() { fi "$1" --enable-frozen-string-literal --disable=gems,did_you_mean,rubyopt \ - "$HOMEBREW_LIBRARY/Homebrew/utils/ruby_check_version_script.rb" \ - "$HOMEBREW_REQUIRED_RUBY_VERSION" 2>/dev/null + "${HOMEBREW_LIBRARY}/Homebrew/utils/ruby_check_version_script.rb" \ + "${HOMEBREW_REQUIRED_RUBY_VERSION}" 2>/dev/null } +# HOMEBREW_MACOS is set by brew.sh +# HOMEBREW_PATH is set by global.rb +# shellcheck disable=SC2154 find_ruby() { - if [[ -n "$HOMEBREW_MACOS" ]] + if [[ -n "${HOMEBREW_MACOS}" ]] then echo "/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby" else IFS=$'\n' # Do word splitting on new lines only - for ruby_exec in $(which -a ruby 2>/dev/null) $(PATH=$HOMEBREW_PATH which -a ruby 2>/dev/null) + for ruby_exec in $(command -v -a ruby 2>/dev/null) $(PATH=${HOMEBREW_PATH} command -v -a ruby 2>/dev/null) do - if test_ruby "$ruby_exec"; then - echo "$ruby_exec" + if test_ruby "${ruby_exec}"; then + echo "${ruby_exec}" break fi done @@ -28,14 +33,17 @@ find_ruby() { fi } +# HOMEBREW_FORCE_VENDOR_RUBY is from the user environment +# HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH are set by brew.sh +# shellcheck disable=SC2154 need_vendored_ruby() { - if [[ -n "$HOMEBREW_FORCE_VENDOR_RUBY" ]] + if [[ -n "${HOMEBREW_FORCE_VENDOR_RUBY}" ]] then return 0 - elif [[ -n "$HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH" ]] + elif [[ -n "${HOMEBREW_MACOS_SYSTEM_RUBY_NEW_ENOUGH}" ]] then return 1 - elif [[ -z "$HOMEBREW_MACOS" ]] && test_ruby "$HOMEBREW_RUBY_PATH" + elif [[ -z "${HOMEBREW_MACOS}" ]] && test_ruby "${HOMEBREW_RUBY_PATH}" then return 1 else @@ -43,6 +51,8 @@ need_vendored_ruby() { fi } +# HOMEBREW_LINUX is set by brew.sh +# shellcheck disable=SC2154 setup-ruby-path() { local vendor_dir local vendor_ruby_root @@ -56,53 +66,53 @@ setup-ruby-path() { local upgrade_fail local install_fail - if [[ -n $HOMEBREW_MACOS ]] + if [[ -n ${HOMEBREW_MACOS} ]] then upgrade_fail="Failed to upgrade Homebrew Portable Ruby!" install_fail="Failed to install Homebrew Portable Ruby (and your system version is too old)!" else local advice=" If there's no Homebrew Portable Ruby available for your processor: -- install Ruby $HOMEBREW_REQUIRED_RUBY_VERSION with your system package manager (or rbenv/ruby-build) +- install Ruby ${HOMEBREW_REQUIRED_RUBY_VERSION} with your system package manager (or rbenv/ruby-build) - make it first in your PATH - try again " - upgrade_fail="Failed to upgrade Homebrew Portable Ruby!$advice" - install_fail="Failed to install Homebrew Portable Ruby and cannot find another Ruby $HOMEBREW_REQUIRED_RUBY_VERSION!$advice" + upgrade_fail="Failed to upgrade Homebrew Portable Ruby!${advice}" + install_fail="Failed to install Homebrew Portable Ruby and cannot find another Ruby ${HOMEBREW_REQUIRED_RUBY_VERSION}!${advice}" fi - vendor_dir="$HOMEBREW_LIBRARY/Homebrew/vendor" - vendor_ruby_root="$vendor_dir/portable-ruby/current" - vendor_ruby_path="$vendor_ruby_root/bin/ruby" - vendor_ruby_terminfo="$vendor_ruby_root/share/terminfo" - vendor_ruby_latest_version=$(<"$vendor_dir/portable-ruby-version") - vendor_ruby_current_version=$(readlink "$vendor_ruby_root") + vendor_dir="${HOMEBREW_LIBRARY}/Homebrew/vendor" + vendor_ruby_root="${vendor_dir}/portable-ruby/current" + vendor_ruby_path="${vendor_ruby_root}/bin/ruby" + vendor_ruby_terminfo="${vendor_ruby_root}/share/terminfo" + vendor_ruby_latest_version=$(<"${vendor_dir}/portable-ruby-version") + vendor_ruby_current_version=$(readlink "${vendor_ruby_root}") unset HOMEBREW_RUBY_PATH - if [[ "$HOMEBREW_COMMAND" == "vendor-install" ]] + if [[ "${HOMEBREW_COMMAND}" == "vendor-install" ]] then return 0 fi - if [[ -x "$vendor_ruby_path" ]] + if [[ -x "${vendor_ruby_path}" ]] then - HOMEBREW_RUBY_PATH="$vendor_ruby_path" - TERMINFO_DIRS="$vendor_ruby_terminfo" - if [[ $vendor_ruby_current_version != "$vendor_ruby_latest_version" ]] + HOMEBREW_RUBY_PATH="${vendor_ruby_path}" + TERMINFO_DIRS="${vendor_ruby_terminfo}" + if [[ ${vendor_ruby_current_version} != "${vendor_ruby_latest_version}" ]] then - brew vendor-install ruby || odie "$upgrade_fail" + brew vendor-install ruby || odie "${upgrade_fail}" fi else HOMEBREW_RUBY_PATH=$(find_ruby) if need_vendored_ruby then - brew vendor-install ruby || odie "$install_fail" - HOMEBREW_RUBY_PATH="$vendor_ruby_path" - TERMINFO_DIRS="$vendor_ruby_terminfo" + brew vendor-install ruby || odie "${install_fail}" + HOMEBREW_RUBY_PATH="${vendor_ruby_path}" + TERMINFO_DIRS="${vendor_ruby_terminfo}" fi fi export HOMEBREW_RUBY_PATH - [[ -n "$HOMEBREW_LINUX" && -n "$TERMINFO_DIRS" ]] && export TERMINFO_DIRS + [[ -n "${HOMEBREW_LINUX}" && -n "${TERMINFO_DIRS}" ]] && export TERMINFO_DIRS }