mirror of
https://github.com/nmasur/dotfiles
synced 2024-11-24 17:55:37 +00:00
151 lines
3.4 KiB
Bash
Executable File
151 lines
3.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
DOTS=$(dirname "$0")/..
|
|
cd "$DOTS" || (echo "Directory not found: $DOTS"; exit 1)
|
|
DOTS="$PWD"
|
|
|
|
check_for_zsh() {
|
|
if ! (echo "$SHELL" | grep zsh > /dev/null)
|
|
then
|
|
echo "Switch to using zsh before continuing"
|
|
echo ""
|
|
echo "MacOS Instructions:"
|
|
echo "System Preferences > Users & Groups > Unlock"
|
|
echo "Right-click on user, Advanced Options..."
|
|
echo "Login shell: /bin/zsh"
|
|
exit 1
|
|
fi
|
|
|
|
echo "zsh ✓"
|
|
}
|
|
|
|
check_for_ohmyzsh() {
|
|
if [ ! -d ~/.oh-my-zsh ]
|
|
then
|
|
echo "oh-my-zsh ✕"
|
|
echo ""
|
|
echo "Install oh-my-zsh before continuing"
|
|
echo "You can run the script: install_ohmyzsh"
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
echo "oh-my-zsh ✓"
|
|
}
|
|
|
|
install_xcode() {
|
|
if [ "$(uname)" = "Darwin" ]
|
|
then
|
|
if ! (xcode-select --version > /dev/null 2>&1)
|
|
then
|
|
xcode-select --install
|
|
fi
|
|
echo "xcode ✓"
|
|
fi
|
|
}
|
|
|
|
install_homebrew() {
|
|
if ! (which /usr/local/bin/brew > /dev/null)
|
|
then
|
|
printf "homebrew ✕\n\n"
|
|
printf "\ninstalling homebrew..."
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
|
|
echo ""
|
|
fi
|
|
|
|
echo "homebrew ✓"
|
|
}
|
|
|
|
install_brews() {
|
|
brewfile=$DOTS/homebrew/Brewfile
|
|
if ! (/usr/local/bin/brew bundle check --file "$brewfile" > /dev/null)
|
|
then
|
|
/usr/local/bin/brew bundle --file "$brewfile"
|
|
fi
|
|
|
|
echo "brews installed ✓"
|
|
}
|
|
|
|
use_fish_shell() {
|
|
if ! (which fish > /dev/null)
|
|
then
|
|
echo "Install fish before continuing"
|
|
echo "You can do: brew install fish"
|
|
echo "Or add fish to homebrew/Brewfile and rerun"
|
|
exit 1
|
|
fi
|
|
FISH_SHELL=$(which fish)
|
|
if ! (cat /etc/shells | grep $FISH_SHELL > /dev/null)
|
|
then
|
|
echo "Modifying /etc/shells"
|
|
echo "Requires sudo password"
|
|
sudo echo $FISH_SHELL >> /etc/shells
|
|
fi
|
|
if ! (echo "$SHELL" | grep fish > /dev/null)
|
|
then
|
|
echo "Changing default shell to fish"
|
|
echo "Requires sudo password"
|
|
sudo chsh -s $FISH_SHELL
|
|
fi
|
|
|
|
echo "fish ✓"
|
|
}
|
|
|
|
setup_tmux() {
|
|
if [[ ! -d ~/.tmux/plugins/tpm ]]; then
|
|
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
|
fi
|
|
|
|
echo "tmux ✓"
|
|
}
|
|
|
|
install_gitmux() {
|
|
if ! (which gitmux > /dev/null)
|
|
then
|
|
printf "gitmux ✕\n\n"
|
|
printf "\ninstalling gitmux..."
|
|
/bin/bash -c "$(curl -L -o gitmux.tar.gz https://github.com/arl/gitmux/releases/download/v0.6.0/gitmux_0.6.0_macOS_amd64.tar.gz)"
|
|
tar -xzf gitmux.tar.gz gitmux
|
|
mkdir -p ~/.local/bin
|
|
mv gitmux ~/.local/bin/
|
|
rm gitmux.tar.gz
|
|
echo ""
|
|
fi
|
|
|
|
echo "gitmux ✓"
|
|
}
|
|
|
|
install_spacemacs() {
|
|
emacsdir=~/.emacs.d
|
|
if ! (git -C "$emacsdir" pull > /dev/null 2>&1)
|
|
then
|
|
git clone -b develop https://github.com/syl20bnr/spacemacs "$emacsdir"
|
|
fi
|
|
|
|
echo "spacemacs ✓"
|
|
}
|
|
|
|
setup_poetry() {
|
|
poetry completions fish > $(brew --prefix)/share/fish/vendor_completions.d/poetry.fish
|
|
}
|
|
|
|
printf "\nbootstrapping...\n\n"
|
|
install_xcode
|
|
install_homebrew
|
|
install_brews
|
|
setup_tmux
|
|
install_gitmux
|
|
setup_poetry
|
|
use_fish_shell
|
|
("$DOTS/scripts/setup_symlinks")
|
|
|
|
echo ""
|
|
echo "consider running other scripts:"
|
|
echo " - install_casks"
|
|
echo " - configure_macos"
|
|
echo " - setup_keybase"
|
|
echo " - install_python"
|
|
echo " - install_rust"
|
|
echo " - install_cargos"
|
|
echo ""
|