diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 54b6d0d..fa7cb0f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,6 @@ jobs: dry_run: ${{ steps.dry_run.outputs.dry_run }} mas_version: ${{ steps.mas_version.outputs.mas_version }} pre_release: ${{ steps.pre_release.outputs.pre_release }} - release_branch: ${{ steps.release_branch.outputs.release_branch }} tap_path: ${{ steps.tap_path.outputs.tap_path }} steps: # Logs event details and sets `DRY_RUN` env var @@ -45,68 +44,19 @@ jobs: run: | echo "PRE_RELEASE=$(grep -q '-' <<<"${MAS_VERSION}" && echo 'true' || echo 'false')" >>"${GITHUB_OUTPUT}" - - id: release_branch - run: | - echo 'RELEASE_BRANCH=releases/release-${{ github.event.release.tag_name }}' >>"${GITHUB_OUTPUT}" - - id: tap_path run: | echo "TAP_PATH='$(brew --repo mas-cli/tap)'" >>"${GITHUB_OUTPUT}" - prepare-release: - runs-on: macos-15 - needs: [start] - steps: - - uses: actions/checkout@v4 - with: - # A fetch-depth of 0 includes all history and tags for script/version - fetch-depth: 0 - - - name: ๐Ÿ‘ข Bootstrap - run: | - script/bootstrap -f - - - name: ๐Ÿ”€ Create mas release branch - env: - RELEASE_BRANCH: ${{ needs.start.outputs.release_branch }} - run: | - git branch "${RELEASE_BRANCH}" - git switch "${RELEASE_BRANCH}" - - - name: ๐Ÿ”– Update version - env: - MAS_VERSION: ${{ needs.start.outputs.mas_version }} - run: | - script/generate_version_info_for_swift "${MAS_VERSION}" - - - name: ๐Ÿ”ง Configure Git Author - run: | - git config --global user.name 'masclibot' - git config --global user.email 'masclibot@users.noreply.github.com' - - - name: ๐Ÿ’พ Commit changes - env: - MAS_VERSION: ${{ needs.start.outputs.mas_version }} - RELEASE_BRANCH: ${{ needs.start.outputs.release_branch }} - run: | - git add \ - Homebrew/mas.rb \ - Homebrew/mas-tap.rb \ - Package.swift - git commit \ - --message="๐Ÿ”– Version ${MAS_VERSION}" - git push \ - --set-upstream origin "${RELEASE_BRANCH}" - pkg-installer: runs-on: macos-15 - needs: [start, prepare-release] + needs: start steps: - uses: actions/checkout@v4 with: # A fetch-depth of 0 includes all history and tags for script/version fetch-depth: 0 - ref: ${{ needs.start.outputs.release_branch }} + ref: ${{ needs.start.outputs.mas_version }} - name: ๐Ÿ‘ข Bootstrap run: | @@ -126,22 +76,21 @@ jobs: env: GH_TOKEN: ${{ github.token }} DRY_RUN: ${{ needs.start.outputs.dry_run }} - MAS_VERSION: ${{ needs.start.outputs.mas_version }} if: ${{ needs.start.outputs.dry_run == 'false' }} run: | - gh release upload "${MAS_VERSION}" \ + gh release upload '${{ needs.start.outputs.mas_version }}' \ .build/mas.pkg homebrew-tap: runs-on: macos-15 - needs: [start, prepare-release] + needs: start steps: - name: ๐Ÿ“บ Checkout mas repo uses: actions/checkout@v4 with: # A fetch-depth of 0 includes all history and tags for script/version fetch-depth: 0 - ref: ${{ needs.start.outputs.release_branch }} + ref: ${{ needs.start.outputs.mas_version }} - name: ๐Ÿ‘ข Bootstrap run: | @@ -179,60 +128,42 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.DEPLOY_TOKEN }} DRY_RUN: ${{ needs.start.outputs.dry_run }} - RELEASE_BRANCH: ${{ needs.start.outputs.release_branch }} - MAS_VERSION: ${{ needs.start.outputs.mas_version }} working-directory: ${{ needs.start.outputs.tap_path }} run: | - git branch "${RELEASE_BRANCH}" - git switch "${RELEASE_BRANCH}" - - cp -v \ - "${GITHUB_WORKSPACE}/Homebrew/mas-tap.rb" \ - Formula/mas.rb - - git add Formula/mas.rb - git commit --message="๐Ÿ”– Version ${MAS_VERSION}" - - git push \ - --set-upstream origin "${RELEASE_BRANCH}" - - gh pr create \ - --assignee phatblat \ - --base main \ - --head "${RELEASE_BRANCH}" \ - --title "๐Ÿ”– Version ${MAS_VERSION}" \ - --body "This PR contains the changes from releasing version \ - [${MAS_VERSION}](https://github.com/mas-cli/mas/releases/tag/${MAS_VERSION})." + brew bump-formula-pr \ + --strict \ + --online \ + --tag '${{ needs.start.outputs.mas_version }}' \ + --revision "$(git rev-list -n 1 '${{ needs.start.outputs.mas_version }}')" \ + mas-cli/tap/mas - name: ๐Ÿšฐ Update mas tap formula env: GH_TOKEN: ${{ github.token }} 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}" + script/bottle - name: ๐Ÿš€ Upload Bottles env: GH_TOKEN: ${{ github.token }} DRY_RUN: ${{ needs.start.outputs.dry_run }} - MAS_VERSION: ${{ needs.start.outputs.mas_version }} if: ${{ needs.start.outputs.dry_run == 'false' }} run: | - gh release upload "${MAS_VERSION}" \ + gh release upload '${{ needs.start.outputs.mas_version }}' \ .build/bottles/mas-*.bottle.tar.gz homebrew-core: runs-on: macos-15 - needs: [start, prepare-release, homebrew-tap] + needs: [start, homebrew-tap] if: ${{ needs.start.outputs.pre_release == 'false' }} steps: - uses: actions/checkout@v4 with: # A fetch-depth of 0 includes all history and tags for script/version fetch-depth: 0 - ref: ${{ needs.start.outputs.release_branch }} + ref: ${{ needs.start.outputs.mas_version }} - name: ๐Ÿ‘ข Bootstrap run: | @@ -248,7 +179,5 @@ jobs: GH_TOKEN: ${{ github.token }} HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} 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 diff --git a/Brewfile b/Brewfile index b127670..693f5cd 100644 --- a/Brewfile +++ b/Brewfile @@ -1,7 +1,6 @@ brew "act" brew "markdownlint-cli" brew "prettier" -brew "sd" brew "shellcheck" brew "shfmt" brew "swift-format" diff --git a/Brewfile.lock.json b/Brewfile.lock.json index a4de42f..05b8093 100644 --- a/Brewfile.lock.json +++ b/Brewfile.lock.json @@ -40,55 +40,6 @@ } } }, - "sd": { - "version": "1.0.0", - "bottle": { - "rebuild": 0, - "root_url": "https://ghcr.io/v2/homebrew/core", - "files": { - "arm64_sequoia": { - "cellar": ":any_skip_relocation", - "url": "https://ghcr.io/v2/homebrew/core/sd/blobs/sha256:3cf7ab4495f622a4f245bb1c7c30225ef881dc390ee5edc59a1d3c4381cecca1", - "sha256": "3cf7ab4495f622a4f245bb1c7c30225ef881dc390ee5edc59a1d3c4381cecca1" - }, - "arm64_sonoma": { - "cellar": ":any_skip_relocation", - "url": "https://ghcr.io/v2/homebrew/core/sd/blobs/sha256:6bc773a70934364157591cd888e617601a42ed1f615fda8f77364fa45631d08d", - "sha256": "6bc773a70934364157591cd888e617601a42ed1f615fda8f77364fa45631d08d" - }, - "arm64_ventura": { - "cellar": ":any_skip_relocation", - "url": "https://ghcr.io/v2/homebrew/core/sd/blobs/sha256:946a44f567e3528d380fbbee742c3abeed9952f53f7de172a846b63d2e21d5b1", - "sha256": "946a44f567e3528d380fbbee742c3abeed9952f53f7de172a846b63d2e21d5b1" - }, - "arm64_monterey": { - "cellar": ":any_skip_relocation", - "url": "https://ghcr.io/v2/homebrew/core/sd/blobs/sha256:60f079d38aa238a1e7109c6a0f988fe7033449d20f05db3b87219cbfd945fe58", - "sha256": "60f079d38aa238a1e7109c6a0f988fe7033449d20f05db3b87219cbfd945fe58" - }, - "sonoma": { - "cellar": ":any_skip_relocation", - "url": "https://ghcr.io/v2/homebrew/core/sd/blobs/sha256:f83ebe2505106e8c94c4b92d15c0ac3390dc637039043dbafad3e382fa8c61b0", - "sha256": "f83ebe2505106e8c94c4b92d15c0ac3390dc637039043dbafad3e382fa8c61b0" - }, - "ventura": { - "cellar": ":any_skip_relocation", - "url": "https://ghcr.io/v2/homebrew/core/sd/blobs/sha256:0200b81c386198d39ed7b03e85c771e141d9604075d82aa4caed5d5a775486c8", - "sha256": "0200b81c386198d39ed7b03e85c771e141d9604075d82aa4caed5d5a775486c8" - }, - "monterey": { - "cellar": ":any_skip_relocation", - "url": "https://ghcr.io/v2/homebrew/core/sd/blobs/sha256:a8fee9e7b0202a27d8dcc599ebd391637107134f139dbe88d6b22c880e63d8a1", - "sha256": "a8fee9e7b0202a27d8dcc599ebd391637107134f139dbe88d6b22c880e63d8a1" - }, - "x86_64_linux": { - "cellar": ":any_skip_relocation", - "url": "https://ghcr.io/v2/homebrew/core/sd/blobs/sha256:4c098bdfaff013f7a6b6b96a65b9cfef86926e1cd901b363e1bdb84734ee6e3f", - "sha256": "4c098bdfaff013f7a6b6b96a65b9cfef86926e1cd901b363e1bdb84734ee6e3f" - } - } - } - }, "shellcheck": { "version": "0.10.0", "bottle": { diff --git a/Homebrew/mas-tap.rb b/Homebrew/mas-tap.rb deleted file mode 100644 index 4d52cf0..0000000 --- a/Homebrew/mas-tap.rb +++ /dev/null @@ -1,34 +0,0 @@ -# typed: strict -# frozen_string_literal: true - -# mas command formula for custom tap (mas-cli/homebrew-tap). -class Mas < Formula - desc "Mac App Store command-line interface" - homepage "https://github.com/mas-cli/mas" - url "https://github.com/mas-cli/mas.git", - tag: "v1.8.7-beta.1", - revision: "f8be3e9aaa6c78490277976f17041f2577f5dc21" - license "MIT" - head "https://github.com/mas-cli/mas.git", branch: "main" - - bottle do - root_url "https://github.com/mas-cli/mas/releases/download/v1.8.7-beta.1" - sha256 cellar: :any_skip_relocation, el_capitan: "0d042a450d2623e3ea40db0b645454ee88d1a1763a7aa778eec5beea619b9a60" - end - - depends_on xcode: ["14.2", :build] - depends_on :macos - - def install - system "script/build" - system "script/install", prefix - - bash_completion.install "contrib/completion/mas-completion.bash" => "mas" - fish_completion.install "contrib/completion/mas.fish" - end - - test do - assert_equal version.to_s, shell_output("#{bin}/mas version").chomp - assert_includes shell_output("#{bin}/mas info 497799835"), "Xcode" - end -end diff --git a/Homebrew/mas.rb b/Homebrew/mas.rb deleted file mode 100644 index 7e13732..0000000 --- a/Homebrew/mas.rb +++ /dev/null @@ -1,41 +0,0 @@ -# typed: strict -# frozen_string_literal: true - -# mas command formula for homebrew-core tap. -class Mas < Formula - desc "Mac App Store command-line interface" - homepage "https://github.com/mas-cli/mas" - url "https://github.com/mas-cli/mas.git", - tag: "v1.8.7-beta.1", - revision: "f8be3e9aaa6c78490277976f17041f2577f5dc21" - license "MIT" - head "https://github.com/mas-cli/mas.git", branch: "main" - - bottle do - sha256 cellar: :any_skip_relocation, arm64_sonoma: "7b11bfefcb43e9a423ff301f7bbc29b0fb86044bf93442f243c5a8a67d8d4869" - sha256 cellar: :any_skip_relocation, arm64_ventura: "e49511dd1283813c4420aec9fc3b3167d18f9fdbb51d82b1e479b628d5312342" - sha256 cellar: :any_skip_relocation, arm64_monterey: "379d46e2657be295321f1603dc1df28130ea0b5b264ceb192a9ba488d77c7a98" - sha256 cellar: :any_skip_relocation, arm64_big_sur: "918a1484de106940f7bebc936e1ded87d7b65652054b09204887ad0651937ec4" - sha256 cellar: :any_skip_relocation, sonoma: "24e3057991ea1eed52eb4a27c0f17d794106770621e5a8bb975477dae135b82d" - sha256 cellar: :any_skip_relocation, ventura: "6ef7788e28c46cdc0f916812f49dfeb1fabf2240a8c36f33ce34bcfb9df1502f" - sha256 cellar: :any_skip_relocation, monterey: "6b313f2f66d028cb7782c108d6e502ce73ccb9c08fac3bece0b057fcce5c4689" - sha256 cellar: :any_skip_relocation, big_sur: "50b50f51219143fcb69c730b52b74011a76104f66348ea727d0200f7b375ae25" - sha256 cellar: :any_skip_relocation, catalina: "d241d3b9156b033f3d2c31684a44de726297e07fd9bd5e3ccc4c36e4f1c3baf3" - end - - depends_on xcode: ["14.2", :build] - depends_on :macos - - def install - system "script/build" - system "script/install", prefix - - bash_completion.install "contrib/completion/mas-completion.bash" => "mas" - fish_completion.install "contrib/completion/mas.fish" - end - - test do - assert_equal version.to_s, shell_output("#{bin}/mas version").chomp - assert_includes shell_output("#{bin}/mas info 497799835"), "Xcode" - end -end diff --git a/script/bottle b/script/bottle index 695510f..1c45163 100755 --- a/script/bottle +++ b/script/bottle @@ -76,33 +76,6 @@ if [[ "$(uname -m)" == 'arm64' ]]; then CURRENT_PLATFORM="arm64_${CURRENT_PLATFORM}" fi -################################################################################ -# -# Preflight checks -# - -# # Uninstall if necessary -# brew remove mas 2>/dev/null || true -# brew remove mas-cli/tap/mas 2>/dev/null || true - -# # Uninstall if still found on path -# if command -v mas >/dev/null; then -# script/uninstall || true -# fi - -# Use formula from custom tap -# brew tap mas-cli/tap -# brew update - -# Audit formula -brew audit --strict --verbose --formula --tap mas-cli/tap mas -brew style Homebrew/mas-tap.rb - -################################################################################ -# -# Build the formula for the current macOS version and architecture. -# - echo "==> ๐Ÿผ Bottling mas ${version} on ${CURRENT_PLATFORM} for ${OS_NAMES[*]}" brew install --build-bottle mas-cli/tap/mas @@ -119,45 +92,10 @@ if [[ ! -e "${generated_bottle_filename}" ]]; then exit 1 fi -SHA256="$(shasum -a 256 "${generated_bottle_filename}" | cut -f 1 -d ' ' -)" - mkdir -p "${BOTTLE_DIR}" -# Start of bottle block -BOTTLE_BLOCK="$( - cat <<-EOF -bottle do - root_url "${ROOT_URL}" -EOF -)" - -################################################################################ -# -# Copy the bottle for all macOS version + architecture combinations. -# - -# Fix filename for os in "${OS_NAMES[@]}"; do cp -v "${generated_bottle_filename}" "${BOTTLE_DIR}/mas-${version}.${os}.bottle.tar.gz" - - # Append each os - # BOTTLE_BLOCK="$(printf "${BOTTLE_BLOCK}\n sha256 cellar: :any_skip_relocation, %-15s %s" "${os}:" "${SHA256}")" - BOTTLE_BLOCK="${BOTTLE_BLOCK}$( - cat <<-EOF - - sha256 cellar: :any_skip_relocation, ${os}: "${SHA256}" -EOF - )" done -# End of bottle block -BOTTLE_BLOCK="$( - cat <<-EOF - -end -EOF -)" - rm "${generated_bottle_filename}" -ls -l "${BOTTLE_DIR}" -echo "${BOTTLE_BLOCK}" diff --git a/script/brew_core_update b/script/brew_core_update index 316b5f9..8f78ef9 100755 --- a/script/brew_core_update +++ b/script/brew_core_update @@ -16,18 +16,14 @@ if ! cd -- "${mas_dir}"; then exit 1 fi -CORE_TAP_PATH="$(brew --repo homebrew/core)" - function usage { - echo 'Usage: brew_core_update [-d] [ []]' >&2 + echo 'Usage: brew_core_update [-d]' >&2 echo ' -d option enables dry run mode' >&2 - echo ' version will be inferred using version script if not provided' >&2 - echo ' sha will be inferred from the current commit if not provided' >&2 exit 1 } -# Max 3 arguments -if [[ "${#}" -gt 3 ]]; then +# Max 1 argument +if [[ "${#}" -gt 1 ]]; then usage fi @@ -37,7 +33,7 @@ dry_run= while getopts 'd' o; do case "${o}" in d) - dry_run=-d + dry_run=--dry-run ;; *) usage @@ -49,106 +45,21 @@ shift "$((OPTIND - 1))" # DRY_RUN environment variable # shellcheck disable=SC2153 if [[ "${DRY_RUN}" == 'true' ]]; then - dry_run=-d + dry_run=--dry-run fi -# arg 1 - version tag -MAS_VERSION="${1:-"v$(script/version)"}" +version_tag="v$(script/version)" +revision="$(git rev-parse "${version_tag}")" -echo "MAS_VERSION: ${MAS_VERSION}" - -# arg 2 - revision (commit hash) -# If arg 2 wasn't supplied or is empty, obtain revision from ${MAS_VERSION} version tag -REVISION="${2:-"$(git rev-parse "${MAS_VERSION}")"}" - -echo "REVISION: ${REVISION}" - -################################################################################ -# -# Preflight checks -# - -# Uninstall if necessary -brew remove mas 2>/dev/null || true -brew remove mas-cli/tap/mas 2>/dev/null || true - -# Uninstall if still found on path -if command -v mas >/dev/null; then - script/uninstall || true -fi - -# Ensure core is tapped -if ! [[ -d "${CORE_TAP_PATH}" ]]; then - brew tap homebrew/core -fi - -brew update - -################################################################################ -# -# Build the formula for the current macOS version and architecture. -# - -# Update mas formula in core (temporary) -cp -v Homebrew/mas.rb "${CORE_TAP_PATH}/Formula/m/mas.rb" - -# Install mas from source -# HOMEBREW_NO_INSTALL_FROM_API: -# Force brew to use the local repository instead of the API. -# Disable API before any install, reinstall or upgrade commands. - -HOMEBREW_NO_INSTALL_FROM_API=1 \ - brew install mas \ - --build-from-source \ - --verbose - -# Audit formula -brew audit --strict mas -brew style mas - -# Revert core formula change after testing -pushd "${CORE_TAP_PATH}" -git diff -git checkout . -popd - -################################################################################ -# -# Update Homebrew -# - -echo "==> ๐Ÿงช Updating homebrew-core formula mas (${MAS_VERSION}, ${REVISION})" - -echo 'Validating formula' -brew bump-formula-pr \ - --tag="${MAS_VERSION}" \ - --revision="${REVISION}" \ - --strict \ - --verbose \ - --no-browse \ - --fork-org mas-cli \ - --dry-run \ - mas - -# brew exit status -status="${?}" -if [[ "${status}" -ne 0 ]]; then - echo $'Formula did not validate using \'brew bump-formula-pr\'' >&2 - exit "${status}" -fi - -if [[ "${dry_run}" == '-d' ]]; then - exit 0 -fi - -echo 'Updating homebrew/core formula with a PR' +echo "==> ๐Ÿงช Updating mas homebrew-core formula to version tag ${version_tag} @ revision ${revision}" brew bump-formula-pr \ - --tag="${MAS_VERSION}" \ - --revision="${REVISION}" \ + --tag="${version_tag}" \ + --revision="${revision}" \ --strict \ --verbose \ --online \ --no-browse \ --fork-org mas-cli \ + ${dry_run} \ mas diff --git a/script/brew_tap_update b/script/brew_tap_update deleted file mode 100755 index d9f7139..0000000 --- a/script/brew_tap_update +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -ex -# -# script/brew_tap_update -# mas -# -# Updates mas custom tap formula: -# https://github.com/mas-cli/homebrew-tap/blob/main/Formula/mas.rb -# - -mas_dir="$(readlink -fn "$(dirname "${BASH_SOURCE:-"${0}"}")/..")" - -if ! cd -- "${mas_dir}"; then - printf $'Error: Could not cd into mas directory: %s\n' "${mas_dir}" >&2 - exit 1 -fi - -function usage { - echo 'Usage: brew_tap_update [ []]' >&2 - echo ' version will be inferred using version script if not provided' >&2 - echo ' sha will be inferred from the current commit if not provided' >&2 - exit 1 -} - -# Max 2 arguments -if [[ "${#}" -gt 2 ]]; then - usage -fi - -# arg 1 - version tag -MAS_VERSION="${1:-"v$(script/version)"}" - -echo "MAS_VERSION: ${MAS_VERSION}" - -# arg 2 - revision (commit hash) -# If arg 2 wasn't supplied or is empty, obtain revision from ${MAS_VERSION} version tag -REVISION="${2:-"$(git rev-parse "${MAS_VERSION}")"}" - -echo "REVISION: ${REVISION}" - -# Build in mas project -script/bottle diff --git a/script/build b/script/build index b6ac981..fa843f0 100755 --- a/script/build +++ b/script/build @@ -30,7 +30,9 @@ else CACHE=() fi -echo "==> ๐Ÿ—๏ธ Building mas $(script/version --write)" +script/generate_version_info_for_swift + +echo "==> ๐Ÿ—๏ธ Building mas $(script/version)" swift build \ --configuration release \ "${ARCH[@]+"${ARCH[@]}"}" \ diff --git a/script/generate_version_info_for_swift b/script/generate_version_info_for_swift index fd3afc5..b276c25 100755 --- a/script/generate_version_info_for_swift +++ b/script/generate_version_info_for_swift @@ -3,7 +3,7 @@ # script/generate_version_info_for_swift # mas # -# Increments the marketing version of mas. +# Generates a file to provide the mas version to Swift code. # mas_dir="$(readlink -fn "$(dirname "${BASH_SOURCE:-"${0}"}")/..")" @@ -13,46 +13,10 @@ if ! cd -- "${mas_dir}"; then exit 1 fi -LOCAL_MAS_FORMULA_PATH=Homebrew/mas.rb -LOCAL_TAP_FORMULA_PATH=Homebrew/mas-tap.rb -SWIFT_PACKAGE=Sources/mas/Package.swift - -function usage { - echo 'Usage: generate_version_info_for_swift []' >&2 - echo ' existing tag name' >&2 - echo ' sha will be inferred from the given tag if not provided' >&2 - exit 1 -} - -if [[ "${#}" -lt 1 ]]; then - usage -fi - -# arg 1 - version tag -MAS_VERSION="${1}" - -# arg 2 - revision (commit hash) -# If arg 2 wasn't supplied or is empty, obtain revision from ${MAS_VERSION} version tag -REVISION="${2:-"$(git rev-parse "${MAS_VERSION}")"}" - -echo "MAS_VERSION: ${MAS_VERSION}" -echo "REVISION: ${REVISION}" - -# Write new version into swift package -cat <"${SWIFT_PACKAGE}" +# Write version to Swift singleton +cat <Sources/mas/Package.swift /// Generated by \`script/generate_version_info_for_swift\`. enum Package { - static let version = "${MAS_VERSION#v}" + static let version = "$(script/version)" } EOF - -echo -cat "${SWIFT_PACKAGE}" - -# Write new version into brew formulae -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}" - sd '( +root_url "https://github.com/mas-cli/mas/releases/download/).+' "\${1}${MAS_VERSION}\"" "${file}" -done diff --git a/script/lint b/script/lint index 844b804..543aa68 100755 --- a/script/lint +++ b/script/lint @@ -19,7 +19,9 @@ if ! cd -- "${mas_dir}"; then exit 1 fi -printf $'==> ๐Ÿšจ Linting mas %s\n' "$(script/version --write)" +script/generate_version_info_for_swift + +printf $'==> ๐Ÿšจ Linting mas %s\n' "$(script/version)" for linter in git markdownlint periphery shellcheck shfmt swift-format swiftformat swiftlint yamllint; do if [[ ! -x "$(command -v "${linter}")" ]]; then diff --git a/script/test b/script/test index 02c5eec..0af4334 100755 --- a/script/test +++ b/script/test @@ -13,6 +13,8 @@ if ! cd -- "${mas_dir}"; then exit 1 fi -printf $'==> โœ… Testing mas %s\n' "$(script/version --write)" +script/generate_version_info_for_swift + +printf $'==> โœ… Testing mas %s\n' "$(script/version)" swift test diff --git a/script/version b/script/version index 067c184..1458165 100755 --- a/script/version +++ b/script/version @@ -3,7 +3,7 @@ # script/version # mas # -# Displays the current marketing version of mas. +# Displays the mas version. # mas_dir="$(readlink -fn "$(dirname "${BASH_SOURCE:-"${0}"}")/..")" @@ -15,13 +15,3 @@ fi version_tag="$(git describe --abbrev=0 --tags 2>/dev/null)" printf $'%s\n' "${version_tag#v}" - -if [[ "${#}" -ge 1 && "${1}" == '--write' ]]; then - # Write new version into swift package - cat <Sources/mas/Package.swift -/// Generated by \`script/version\`. -enum Package { - static let version = "${MAS_VERSION#v}" -} -EOF -fi