dotfiles/dotfiles/install

89 lines
2.4 KiB
Bash

#!/usr/bin/env bash
if [[ $(uname) == 'Darwin' ]]; then
if ! command -v brew &>/dev/null
then
# We need to update bash, so we'll start with setting up homebrew.
./macos/pre_install
exit
fi
fi
source "script_helpers/printing.sh"
source "script_helpers/core.sh"
source "script_helpers/platform.sh"
source "script_helpers/file_ops.sh"
dotfiles_dir=$PWD
os_is_windows is_windows
os_is_macos is_macos
os_is_linux is_linux
# Check for admin permissions when running on Windows.
if [[ $is_windows -eq 1 ]]; then
# `openfiles` is a command present on all supported Windows versions,
# requires admin privileges, and has no side effects.
openfiles &>/dev/null
admin_error=$?
if [[ ! $admin_error -eq 0 ]]; then
fatal "You need to run this in an admin shell!"
fi
fi
set -e
####################################################################################################
# Helpers
####################################################################################################
use_shell() {
shell=$1
if hash chsh >/dev/null 2>&1; then
printf "\n${BLUE}Changing the default shell to $shell${NORMAL}\n"
chsh -s $(which $shell)
else
error "\nUnable to change the shell because this system does not have chsh.\n"
fi
}
setup_zsh() {
printf "${MAGENTA}==> ${NORMAL}Setting up zsh...\n"
if [[ $is_linux -eq 1 ]]; then
sudo apt install zsh
fi
}
####################################################################################################
# Setup
####################################################################################################
pushd "$HOME" &>/dev/null
set +e
git_comp_filename=".git-completion.bash"
printf "${MAGENTA}==> ${NORMAL}Downloading Git completion list to ${YELLOW}$PWD/$git_comp_filename${NORMAL}\n"
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o $git_comp_filename
set -e
#########################
# Setup platform files
#########################
if [[ $is_macos -eq 1 ]]; then
printf "\n${BOLD}Setting up MacOS${NORMAL}\n\n"
$dotfiles_dir/macos/install
# might just switch back to bash since the zsh stuff is ancient.
setup_zsh
use_shell zsh
elif [[ $is_linux -eq 1 ]]; then
printf "\n${BOLD}Setting up Linux${NORMAL}\n\n"
$dotfiles_dir/linux/install
use_shell bash
fi
popd "$HOME" &>/dev/null
printf "${BOLD}${GREEN}Done!${NORMAL}\n"