2022-04-17 20:52:22 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
2024-12-03 00:16:34 +01:00
|
|
|
# Exit on error
|
|
|
|
set -e
|
|
|
|
|
2022-04-23 00:55:01 +02:00
|
|
|
# Path to your dotfiles.
|
|
|
|
export DOTFILES=$HOME/.dotfiles
|
2022-04-17 20:52:22 +02:00
|
|
|
|
|
|
|
echo "Setting up your Mac..."
|
|
|
|
|
|
|
|
# Check for Homebrew and install if we don't have it
|
|
|
|
if test ! $(which brew); then
|
|
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
|
|
|
2023-11-03 10:09:45 +01:00
|
|
|
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.zprofile
|
|
|
|
eval "$(/opt/homebrew/bin/brew shellenv)"
|
2022-04-17 20:52:22 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Update Homebrew recipes
|
|
|
|
brew update
|
|
|
|
|
|
|
|
# Install all our dependencies with bundle (See Brewfile)
|
|
|
|
brew tap homebrew/bundle
|
|
|
|
|
2023-10-29 17:50:49 +01:00
|
|
|
brew bundle --file ${DOTFILES}/macos/Brewfile
|
2022-04-17 20:52:22 +02:00
|
|
|
|
2022-05-21 22:03:56 +02:00
|
|
|
# Fix for https://github.com/Homebrew/homebrew-core/issues/74447
|
|
|
|
# gnupg is not really needed but marked as a dependency for pass
|
|
|
|
brew unlink gnupg
|
|
|
|
|
2024-12-09 13:12:14 +01:00
|
|
|
flutter --disable-analytics
|
|
|
|
|
2024-12-09 14:01:07 +01:00
|
|
|
# Properly symlink openjdk java
|
|
|
|
# See https://formulae.brew.sh/formula/openjdk
|
|
|
|
sudo ln -sfn $HOMEBREW_PREFIX/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
|
|
|
|
|
2024-06-12 18:57:47 +02:00
|
|
|
# Enable corepack
|
2024-12-19 17:14:55 +01:00
|
|
|
corepack disable
|
2024-06-12 18:57:47 +02:00
|
|
|
corepack enable
|
|
|
|
|
2024-12-03 00:23:44 +01:00
|
|
|
# Install global Composer packages
|
|
|
|
${HOMEBREW_PREFIX}/bin/composer global require laravel/installer laravel/valet tightenco/takeout
|
|
|
|
|
2024-12-03 00:27:56 +01:00
|
|
|
# Install Laravel Valet
|
2024-12-03 00:44:34 +01:00
|
|
|
$HOME/.composer/vendor/bin/valet install
|
2024-12-03 00:27:56 +01:00
|
|
|
|
2024-12-03 00:23:44 +01:00
|
|
|
# Set Valet TLD to .localhost for secure context even in HTTP
|
2024-12-03 00:53:56 +01:00
|
|
|
yes | valet tld localhost
|
2022-04-17 20:52:22 +02:00
|
|
|
|
2024-12-18 22:10:49 +01:00
|
|
|
# Add bin folder to PATH with higher priority than homebrew.
|
|
|
|
# So we can add scripts like our php script for isolated environments
|
|
|
|
# to also use the correct php binary when called from JS or other
|
|
|
|
# non-interactive scenarios.
|
|
|
|
MAC_BIN_ZPROFILE_CMD='export PATH="$HOME/.dotfiles/macos/bin:$PATH"'
|
|
|
|
if ! grep -qxF $MAC_BIN_ZPROFILE_CMD "$HOME/.zprofile"; then
|
|
|
|
echo $MAC_BIN_ZPROFILE_CMD >> "$HOME/.zprofile"
|
|
|
|
fi
|
|
|
|
|
2024-12-03 00:23:44 +01:00
|
|
|
# Create dev directories
|
2022-04-17 20:52:22 +02:00
|
|
|
mkdir -p $HOME/git/clickbar
|
|
|
|
mkdir -p $HOME/git/konaktiva
|
|
|
|
mkdir -p $HOME/git/private
|
|
|
|
|
2024-12-03 00:23:44 +01:00
|
|
|
# Mark directories for Valet
|
|
|
|
valet park $HOME/git/clickbar
|
|
|
|
valet park $HOME/git/private
|
2023-01-15 00:41:32 +01:00
|
|
|
|
2024-04-02 03:21:46 +02:00
|
|
|
read -p "Enter a name for your MacBook, typically 'MacBook YOURNAME' [default: MacBook cb.]: " computername
|
|
|
|
computername=${computername:-MacBook cb.}
|
|
|
|
echo "Setting hostname to $computername"
|
|
|
|
|
|
|
|
# Set computer name (as done via System Preferences → Sharing)
|
|
|
|
sudo scutil --set ComputerName "$computername"
|
|
|
|
sudo scutil --set HostName "$computername"
|
|
|
|
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "$computername"
|
|
|
|
|
2024-12-03 00:03:15 +01:00
|
|
|
# Set macOS preferences - we will run this last because this will reload the shell
|
|
|
|
source ${DOTFILES}/macos/.macos
|
2024-12-03 00:29:35 +01:00
|
|
|
|
|
|
|
# Call the general install script to setup zsh etc.
|
|
|
|
source install.sh
|