Use double quotes around bash substitutions.

Use braces around bash variable uses.

Partial #638

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
This commit is contained in:
Ross Goldberg 2024-11-15 21:46:11 -05:00
parent 5b96b77e22
commit f1a9cde9fd
No known key found for this signature in database
16 changed files with 73 additions and 73 deletions

View file

@ -43,7 +43,7 @@ jobs:
- id: pre_release
run: |
echo "PRE_RELEASE=$(grep -q '-' <<<$MAS_VERSION && echo 'true' || echo 'false')" >>"$GITHUB_OUTPUT"
echo "PRE_RELEASE=$(grep -q '-' <<<"${MAS_VERSION}" && echo 'true' || echo 'false')" >>"${GITHUB_OUTPUT}"
- id: release_branch
run: |
@ -129,7 +129,7 @@ jobs:
MAS_VERSION: ${{ needs.start.outputs.mas_version }}
if: ${{ needs.start.outputs.dry_run == 'false' }}
run: |
gh release upload ${MAS_VERSION} \
gh release upload "${MAS_VERSION}" \
.build/mas.pkg
homebrew-tap:
@ -187,7 +187,7 @@ jobs:
git switch "${RELEASE_BRANCH}"
cp -v \
${GITHUB_WORKSPACE}/Homebrew/mas-tap.rb \
"${GITHUB_WORKSPACE}/Homebrew/mas-tap.rb" \
Formula/mas.rb
git add Formula/mas.rb
@ -210,8 +210,8 @@ jobs:
DRY_RUN: ${{ needs.start.outputs.dry_run }}
MAS_VERSION: ${{ needs.start.outputs.mas_version }}
run: |
DRY_RUN=${DRY_RUN} \
script/brew_tap_update ${MAS_VERSION}
DRY_RUN="${DRY_RUN}" \
script/brew_tap_update "${MAS_VERSION}"
- name: 🚀 Upload Bottles
env:
@ -220,7 +220,7 @@ jobs:
MAS_VERSION: ${{ needs.start.outputs.mas_version }}
if: ${{ needs.start.outputs.dry_run == 'false' }}
run: |
gh release upload ${MAS_VERSION} \
gh release upload "${MAS_VERSION}" \
.build/bottles/mas-*.bottle.tar.gz
homebrew-core:
@ -250,5 +250,5 @@ jobs:
DRY_RUN: ${{ needs.start.outputs.dry_run }}
MAS_VERSION: ${{ needs.start.outputs.mas_version }}
run: |
DRY_RUN=${DRY_RUN} \
script/brew_core_update ${MAS_VERSION}
DRY_RUN="${DRY_RUN}" \
script/brew_core_update "${MAS_VERSION}"

View file

@ -8,8 +8,8 @@ _mas() {
COMPREPLY=()
_get_comp_words_by_ref cur prev words cword
fi
if [[ $cword -eq 1 ]]; then
COMPREPLY=($(compgen -W "$(mas help | tail -n +3 | awk '{print $1}')" -- "$cur"))
if [[ "${cword}" -eq 1 ]]; then
COMPREPLY=($(compgen -W "$(mas help | tail -n +3 | awk '{print $1}')" -- "${cur}"))
return 0
fi
}

View file

@ -2,9 +2,9 @@
function __fish_mas_list_available -d "Lists applications available to install from the Mac App Store"
set query (commandline -ct)
if set results (command mas search $query 2>/dev/null)
for res in $results
echo $res
if set results (command mas search "${query}" 2>/dev/null)
for res in ${results}
echo "${res}"
end | string trim --left | string replace -r '\s+' '\t'
end
end

View file

@ -17,7 +17,7 @@
BUILD_DIR="${PWD}/.build"
BOTTLE_DIR="${BUILD_DIR}/bottles"
CORE_TAP_PATH="$(brew --repo homebrew/core)"
MAS_VERSION=$(script/version)
MAS_VERSION="$(script/version)"
ROOT_URL="https://github.com/mas-cli/mas/releases/download/v${MAS_VERSION}"
# Supports macOS 10.13 and later
@ -41,8 +41,8 @@ OS_NAMES=(
# Semantic version number split into a list using ugly, bash 3 compatible syntax
IFS=" " read -r -a CURRENT_OS_VERSION <<<"$(sw_vers -productVersion | sed 's/\./ /g')"
CURRENT_OS_VERSION_MAJOR=${CURRENT_OS_VERSION[0]}
CURRENT_OS_VERSION_MINOR=${CURRENT_OS_VERSION[1]}
CURRENT_OS_VERSION_MAJOR="${CURRENT_OS_VERSION[0]}"
CURRENT_OS_VERSION_MINOR="${CURRENT_OS_VERSION[1]}"
echo "CURRENT_OS_VERSION_MAJOR: ${CURRENT_OS_VERSION_MAJOR}"
echo "CURRENT_OS_VERSION_MINOR: ${CURRENT_OS_VERSION_MINOR}"
@ -121,17 +121,17 @@ if ! test -e "${OLD_FILENAME}"; then
exit 1
fi
SHA256=$(shasum -a 256 "${OLD_FILENAME}" | cut -f 1 -d ' ' -)
SHA256="$(shasum -a 256 "${OLD_FILENAME}" | cut -f 1 -d ' ' -)"
mkdir -p "${BOTTLE_DIR}"
# Start of bottle block
BOTTLE_BLOCK=$(
BOTTLE_BLOCK="$(
cat <<-EOF
bottle do
root_url "${ROOT_URL}"
EOF
)
)"
################################################################################
#
@ -145,21 +145,21 @@ for os in "${OS_NAMES[@]}"; do
# Append each os
# BOTTLE_BLOCK="$(printf "${BOTTLE_BLOCK}\n sha256 cellar: :any_skip_relocation, %-15s %s" "${os}:" "${SHA256}")"
BOTTLE_BLOCK="${BOTTLE_BLOCK}"$(
BOTTLE_BLOCK="${BOTTLE_BLOCK}$(
cat <<-EOF
sha256 cellar: :any_skip_relocation, ${os}: "${SHA256}"
EOF
)
)"
done
# End of bottle block
BOTTLE_BLOCK=$(
BOTTLE_BLOCK="$(
cat <<-EOF
end
EOF
)
)"
rm "${OLD_FILENAME}"
ls -l "${BOTTLE_DIR}"

View file

@ -24,7 +24,7 @@ function usage {
}
# Max 3 arguments
if [[ $# -gt 3 ]]; then
if [[ "${#}" -gt 3 ]]; then
usage 1>&2
fi
@ -41,11 +41,11 @@ while getopts "d" o; do
;;
esac
done
shift $((OPTIND - 1))
shift "$((OPTIND - 1))"
# DRY_RUN environment variable
# shellcheck disable=SC2153
if [[ $DRY_RUN == 'true' ]]; then
if [[ "${DRY_RUN}" == 'true' ]]; then
dry_run='-d'
fi
@ -63,7 +63,7 @@ if [[ -n "${2}" ]]; then
REVISION="${2}"
else
# Derive revision from version. Fails if MAS_VERSION is not a tag.
REVISION=$(git rev-parse "${MAS_VERSION}")
REVISION="$(git rev-parse "${MAS_VERSION}")"
fi
echo "REVISION: ${REVISION}"
@ -139,13 +139,13 @@ brew bump-formula-pr \
mas
# brew exit status
status=$?
if [[ ${status} -ne 0 ]]; then
status="${?}"
if [[ "${status}" -ne 0 ]]; then
echo "Formula did not validate using 'brew bump-formula-pr'" 1>&2
exit ${status}
exit "${status}"
fi
if [[ $dry_run == '-d' ]]; then
if [[ "${dry_run}" == '-d' ]]; then
exit 0
fi

View file

@ -15,7 +15,7 @@ function usage {
}
# Max 2 arguments
if [[ $# -gt 2 ]]; then
if [[ "${#}" -gt 2 ]]; then
usage 1>&2
fi
@ -33,7 +33,7 @@ if [[ -n "${2}" ]]; then
REVISION="${2}"
else
# Derive revision from version. Fails if MAS_VERSION is not a tag.
REVISION=$(git rev-parse "${MAS_VERSION}")
REVISION="$(git rev-parse "${MAS_VERSION}")"
fi
echo "REVISION: ${REVISION}"

View file

@ -6,9 +6,9 @@
# Runs all related scripts for generating all artifacts.
#
MAS_VERSION=$(script/version)
MAS_VERSION="$(script/version)"
echo "Building mas $MAS_VERSION artifacts"
echo "Building mas ${MAS_VERSION} artifacts"
script/clean
script/build --universal

View file

@ -20,7 +20,7 @@ fi
printf $'==> 🚨 Formatting mas\n'
for LINTER in markdownlint prettier shfmt swift-format swiftformat swiftlint yamllint; do
if [[ ! -x "$(command -v ${LINTER})" ]]; then
if [[ ! -x "$(command -v "${LINTER}")" ]]; then
printf $'error: %s is not installed. Run \'script/bootstrap\' or \'brew install %s\'.\n' "${LINTER}" "${LINTER}"
exit 1
fi

View file

@ -10,24 +10,24 @@
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/m/mas.rb
#
ARCH=$(uname -m)
RELEASE=.build/${ARCH}-apple-macosx/release
MAS_VERSION=$(script/version)
ARCH="$(uname -m)"
RELEASE=".build/${ARCH}-apple-macosx/release"
MAS_VERSION="$(script/version)"
PREFIX=/usr/local
while test -n "$1"; do
if [[ "$1" == '--universal' ]]; then
while test -n "${1}"; do
if [[ "${1}" == '--universal' ]]; then
ARCH=universal
RELEASE=.build/release
else
# Override default prefix path with optional arg
PREFIX="$1"
PREFIX="${1}"
fi
shift
done
echo "==> 📲 Installing mas ($MAS_VERSION) for $ARCH to $PREFIX"
echo "==> 📲 Installing mas (${MAS_VERSION}) for ${ARCH} to ${PREFIX}"
ditto -v \
"$RELEASE/mas" \
"$PREFIX/bin/mas"
"${RELEASE}/mas" \
"${PREFIX}/bin/mas"

View file

@ -22,7 +22,7 @@ fi
printf $'==> 🚨 Linting mas (%s)\n' "$(script/version --write)"
for linter in git markdownlint periphery shellcheck shfmt swift-format swiftformat swiftlint yamllint; do
if [[ ! -x "$(command -v ${linter})" ]]; then
if [[ ! -x "$(command -v "${linter}")" ]]; then
printf $'error: %s is not installed. Run \'script/bootstrap\' or \'brew install %s\'.\n' "${linter}" "${linter}"
exit 1
fi

View file

@ -6,9 +6,9 @@
# Builds macOS installer component and distribution packages.
#
BUILD_DIR="$PWD/.build"
COMPONENT_PACKAGE="$BUILD_DIR/mas_components.pkg"
DISTRIBUTION_PACKAGE="$BUILD_DIR/mas.pkg"
BUILD_DIR="${PWD}/.build"
COMPONENT_PACKAGE="${BUILD_DIR}/mas_components.pkg"
DISTRIBUTION_PACKAGE="${BUILD_DIR}/mas.pkg"
IDENTIFIER="com.mphys.mas-cli"
@ -18,26 +18,26 @@ DISTRIBUTION_PLIST="Package/Distribution.plist"
# Destination for install root
DSTROOT=.build/distributions
script/install "$DSTROOT/usr/local" --universal
script/install "${DSTROOT}/usr/local" --universal
MAS_VERSION=$(script/version)
MAS_VERSION="$(script/version)"
echo "==> 📦 Assemble an installer package"
# Assemble macOS installer component package (aka "product archive").
pkgbuild \
--identifier "$IDENTIFIER" \
--identifier "${IDENTIFIER}" \
--install-location "/" \
--version "$MAS_VERSION" \
--root "$DSTROOT" \
"$COMPONENT_PACKAGE"
--version "${MAS_VERSION}" \
--root "${DSTROOT}" \
"${COMPONENT_PACKAGE}"
# Build distribution package (aka "product archive"). Not sure why, but this is how Carthage does it.
# https://github.com/Carthage/Carthage/blob/master/Makefile#L69
productbuild \
--distribution "$DISTRIBUTION_PLIST" \
--package-path "$BUILD_DIR" \
"$DISTRIBUTION_PACKAGE"
--distribution "${DISTRIBUTION_PLIST}" \
--package-path "${BUILD_DIR}" \
"${DISTRIBUTION_PACKAGE}"
echo "==> 🔢 File Hash"
shasum -a 256 "$DISTRIBUTION_PACKAGE"
shasum -a 256 "${DISTRIBUTION_PACKAGE}"

View file

@ -14,6 +14,6 @@ sudo installer \
-pkg .build/mas.pkg \
-target /
pkgutil --pkg-info "$IDENTIFIER"
pkgutil --pkg-info "${IDENTIFIER}"
pkgutil --files "$IDENTIFIER"
pkgutil --files "${IDENTIFIER}"

View file

@ -7,12 +7,12 @@
#
# Override default prefix path with optional 1st arg
if test -n "$1"; then
PREFIX="$1"
if test -n "${1}"; then
PREFIX="${1}"
else
PREFIX=$(brew --prefix)
PREFIX="$(brew --prefix)"
fi
echo "==> 🔥 Uninstalling mas from $PREFIX"
echo "==> 🔥 Uninstalling mas from ${PREFIX}"
trash -F "$PREFIX/bin/mas" || true
trash -F "${PREFIX}/bin/mas" || true

View file

@ -22,11 +22,11 @@ check_class_dump() {
}
extract_private_framework_headers() {
local framework_name="$1"
local framework_name="${1}"
shift
local directory="Sources/PrivateFrameworks/${framework_name}"
mkdir -p "$directory"
class-dump -Ho "$directory" "/System/Library/PrivateFrameworks/${framework_name}.framework"
mkdir -p "${directory}"
class-dump -Ho "${directory}" "/System/Library/PrivateFrameworks/${framework_name}.framework"
}
main

View file

@ -15,7 +15,7 @@ fi
if [[ -z "${MAS_VERSION:-}" ]] && git describe >/dev/null 2>&1; then
# Use last tag if MAS_VERSION environment variable is unset or empty
MAS_VERSION=$(git describe --abbrev=0 --tags 2>/dev/null || true)
MAS_VERSION="$(git describe --abbrev=0 --tags 2>/dev/null || true)"
fi
echo "${MAS_VERSION#v}"

View file

@ -24,7 +24,7 @@ function usage {
exit 1
}
if [[ $# -lt 1 ]]; then
if [[ "${#}" -lt 1 ]]; then
usage
fi
@ -35,7 +35,7 @@ MAS_VERSION="${1}"
if [[ "${#}" -ge 2 ]]; then
REVISION="${2}"
else
REVISION=$(git rev-parse "${MAS_VERSION}")
REVISION="$(git rev-parse "${MAS_VERSION}")"
fi
echo "MAS_VERSION: ${MAS_VERSION}"
@ -53,7 +53,7 @@ echo
cat "${SWIFT_PACKAGE}"
# Write new version into brew formulae
for file in ${LOCAL_MAS_FORMULA_PATH} ${LOCAL_TAP_FORMULA_PATH}; do
for file in "${LOCAL_MAS_FORMULA_PATH}" "${LOCAL_TAP_FORMULA_PATH}"; do
echo "${file}"
sd '( +tag: +)"[^"]+"' "\$1\"${MAS_VERSION}\"" "${file}"
sd '( +revision: +)"[^"]+"' "\$1\"${REVISION}\"" "${file}"