mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 21:47:20 +00:00
<!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** Resolves #42573 Fixes failing test by replacing no-longer-supported `--no-quarantine` option with manually turning off quarantine for Wine. Successful run here: https://github.com/fleetdm/fleet/actions/runs/23661332211 --------- Co-authored-by: Allen Houchins <allenhouchins@mac.com>
68 lines
2.2 KiB
Bash
Executable file
68 lines
2.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Please don't delete. This script is linked to, as a redirect, from fleetctl and the Fleet website.
|
|
|
|
set -eo pipefail
|
|
|
|
|
|
brew_wine(){
|
|
# Wine reference: https://wiki.winehq.org/MacOS
|
|
# Wine can be installed without brew via a distribution such as https://github.com/Gcenx/macOS_Wine_builds/releases/tag/10.0 or by building from source.
|
|
# To install a version tied to a specific commit SHA we must create a local tap and install from it after wine 4.6.4 dropped support, see
|
|
# https://github.com/Homebrew/brew/pull/20414
|
|
TAP_PATH="$(brew --repository)/Library/Taps/fleet/homebrew-local/Casks"
|
|
mkdir -p "${TAP_PATH}"
|
|
echo "# tap auto-generated by Fleet for installing wine-stable" > "$(dirname "${TAP_PATH}")/README.md"
|
|
curl -O https://raw.githubusercontent.com/Homebrew/homebrew-cask/bad613d274f9a646dace4a4cc7f2512f836be5b4/Casks/w/wine-stable.rb
|
|
mv wine-stable.rb "${TAP_PATH}/"
|
|
brew install --cask fleet/local/wine-stable
|
|
xattr -dr com.apple.quarantine "$(brew --prefix)/Caskroom/wine-stable"
|
|
exit 0
|
|
}
|
|
|
|
|
|
warn_wine(){
|
|
printf "\nWARNING: The Wine app developer has an Apple Developer certificate but the\napp bundle post-installation will not be code-signed or notarized.\n\nDo you wish to proceed?\n\n"
|
|
while true
|
|
do
|
|
read -r -p "install> " install
|
|
case "$install" in
|
|
y|yes|Y|YES) brew_wine ;;
|
|
n|no|N|NO) printf "\nExiting...\n\n"; exit 1 ;;
|
|
*) printf "\nPlease enter yes or no at the prompt...\n\n" ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
|
|
# option to execute script in non-interactive mode
|
|
while getopts 'n' option
|
|
do
|
|
case "$option" in
|
|
n) mode=auto ;;
|
|
*) : ;;
|
|
esac
|
|
done
|
|
|
|
|
|
# prevent root execution
|
|
if [ "$EUID" = 0 ]
|
|
then
|
|
printf "\nTo prevent unnecessary privilege elevation do not execute this script as the root user.\nExiting...\n\n"; exit 1
|
|
fi
|
|
|
|
|
|
# check if Homebrew is installed
|
|
if ! command -v brew > /dev/null 2>&1
|
|
then
|
|
printf "\nHomebrew is not installed.\nPlease install Homebrew.\nFor instructions, see https://brew.sh/\n\n"; exit 1
|
|
fi
|
|
|
|
|
|
# install Wine
|
|
if [ "$mode" = 'auto' ]
|
|
then
|
|
printf "\n%s executed in non-interactive mode.\n\n" "$0"; brew_wine
|
|
else
|
|
warn_wine
|
|
fi
|