chore: improve the bottles logic in Makefile
With these changes it will be easier to maintain, i.e. to add/remove bottles just modify the `BOTTLES :=` list. `brew update` is removed from `scripts/fetch-brew-bottle.sh` and instead done in an [order-only prerequisite](https://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html). This allows multiple bottles to be fetched in parallel (e.g. `make -j16`) without overlapping invocations of `brew update` (which causes script failure).
This commit is contained in:
parent
00adec07c2
commit
f892b59ca1
21
Makefile
21
Makefile
|
@ -101,16 +101,23 @@ ifneq ($(detected_OS),Windows)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(detected_OS),Darwin)
|
ifeq ($(detected_OS),Darwin)
|
||||||
bottles/openssl:
|
BOTTLES_DIR := $(shell pwd)/bottles
|
||||||
./scripts/fetch-brew-bottle.sh openssl
|
BOTTLES := $(addprefix $(BOTTLES_DIR)/,hunspell openssl pcre)
|
||||||
|
|
||||||
bottles/pcre: bottles/openssl
|
$(BOTTLES): | $(BOTTLES_DIR)
|
||||||
./scripts/fetch-brew-bottle.sh pcre
|
echo -e "\e[92mFetching:\e[39m $(notdir $@) bottle"
|
||||||
|
./scripts/fetch-brew-bottle.sh $(notdir $@)
|
||||||
|
|
||||||
bottles/hunspell: bottles/pcre
|
$(BOTTLES_DIR):
|
||||||
./scripts/fetch-brew-bottle.sh hunspell
|
echo -e "\e[92mUpdating:\e[39m macOS Homebrew"
|
||||||
|
if [[ $$(stat -f %u /usr/local/var/homebrew) -ne "$${UID}" ]]; then \
|
||||||
|
echo "Missing permissions to update Homebrew formulae!" >&2; \
|
||||||
|
else \
|
||||||
|
brew update >/dev/null; \
|
||||||
|
mkdir -p $(BOTTLES_DIR); \
|
||||||
|
fi
|
||||||
|
|
||||||
bottles: bottles/hunspell
|
bottles: $(BOTTLES)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
deps: | deps-common bottles
|
deps: | deps-common bottles
|
||||||
|
|
|
@ -43,14 +43,6 @@ else
|
||||||
BEARER_TOKEN=$(get_gh_pkgs_token)
|
BEARER_TOKEN=$(get_gh_pkgs_token)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# We want the most recent available version of the package.
|
|
||||||
if [[ $(stat -f %u /usr/local/var/homebrew) -ne "${UID}" ]]; then
|
|
||||||
echo "Missing permissions to update Homebrew formulae!" >&2
|
|
||||||
else
|
|
||||||
echo "${BOTTLE_NAME} - Updating HomeBrew repository"
|
|
||||||
brew update >/dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "${BOTTLE_NAME} - Finding bottle URL"
|
echo "${BOTTLE_NAME} - Finding bottle URL"
|
||||||
BOTTLE_JSON=$(get_bottle_json "${BOTTLE_NAME}")
|
BOTTLE_JSON=$(get_bottle_json "${BOTTLE_NAME}")
|
||||||
BOTTLE_URL=$(echo "${BOTTLE_JSON}" | jq -r .url)
|
BOTTLE_URL=$(echo "${BOTTLE_JSON}" | jq -r .url)
|
||||||
|
|
Loading…
Reference in New Issue