Last active
August 30, 2019 07:12
-
-
Save victorphamdeveloper/e754270c8c21e0243ba74c0c40d2d17c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
fancy_echo() { | |
local fmt="$1"; shift | |
# shellcheck disable=SC2059 | |
printf "\\n$fmt\\n" "$@" | |
} | |
append_to_zshrc() { | |
local text="$1" zshrc | |
local skip_new_line="${2:-0}" | |
if [ -w "$HOME/.zshrc.local" ]; then | |
zshrc="$HOME/.zshrc.local" | |
else | |
zshrc="$HOME/.zshrc" | |
fi | |
if ! grep -Fqs "$text" "$zshrc"; then | |
if [ "$skip_new_line" -eq 1 ]; then | |
printf "%s\\n" "$text" >> "$zshrc" | |
else | |
printf "\\n%s\\n" "$text" >> "$zshrc" | |
fi | |
fi | |
} | |
# shellcheck disable=SC2154 | |
trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT | |
set -e | |
if [ ! -d "$HOME/.bin/" ]; then | |
mkdir "$HOME/.bin" | |
fi | |
if [ ! -f "$HOME/.zshrc" ]; then | |
touch "$HOME/.zshrc" | |
fi | |
# shellcheck disable=SC2016 | |
append_to_zshrc 'export PATH="$HOME/.bin:$PATH"' | |
HOMEBREW_PREFIX="/usr/local" | |
if [ -d "$HOMEBREW_PREFIX" ]; then | |
if ! [ -r "$HOMEBREW_PREFIX" ]; then | |
sudo chown -R "$LOGNAME:admin" /usr/local | |
fi | |
else | |
sudo mkdir "$HOMEBREW_PREFIX" | |
sudo chflags norestricted "$HOMEBREW_PREFIX" | |
sudo chown -R "$LOGNAME:admin" "$HOMEBREW_PREFIX" | |
fi | |
update_shell() { | |
local shell_path; | |
shell_path="$(command -v zsh)" | |
fancy_echo "Changing your shell to zsh ..." | |
if ! grep "$shell_path" /etc/shells > /dev/null 2>&1 ; then | |
fancy_echo "Adding '$shell_path' to /etc/shells" | |
sudo sh -c "echo $shell_path >> /etc/shells" | |
fi | |
sudo chsh -s "$shell_path" "$USER" | |
} | |
case "$SHELL" in | |
*/zsh) | |
if [ "$(command -v zsh)" != '/usr/local/bin/zsh' ] ; then | |
update_shell | |
fi | |
;; | |
*) | |
update_shell | |
;; | |
esac | |
if ! command -v brew >/dev/null; then | |
fancy_echo "Installing Homebrew ..." | |
curl -fsS \ | |
'https://raw.githubusercontent.com/Homebrew/install/master/install' | ruby | |
append_to_zshrc '# recommended by brew doctor' | |
# shellcheck disable=SC2016 | |
append_to_zshrc 'export PATH="/usr/local/bin:$PATH"' 1 | |
export PATH="/usr/local/bin:$PATH" | |
fi | |
fancy_echo "Updating Homebrew formulae ..." | |
brew update | |
brew bundle --file=- <<EOF | |
tap "thoughtbot/formulae" | |
tap "homebrew/services" | |
tap "universal-ctags/universal-ctags" | |
# Unix | |
brew "universal-ctags", args: ["HEAD"] | |
brew "git" | |
brew "openssl" | |
brew "rcm" | |
brew "reattach-to-user-namespace" | |
brew "the_silver_searcher" | |
brew "tmux" | |
brew "vim" | |
brew "watchman" | |
brew "zsh" | |
# GitHub | |
brew "hub" | |
# Image manipulation | |
brew "imagemagick" | |
# Programming language prerequisites and package managers | |
brew "libyaml" # should come after openssl | |
brew "coreutils" | |
brew "yarn" | |
# Databases | |
brew "postgres", restart_service: :changed | |
brew "redis", restart_service: :changed | |
EOF | |
# shellcheck disable=SC1090 | |
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" | |
#VIM Configurations | |
git clone --depth=1 https://https://github.com/victorphamdeveloper/vimrc.git ~/.vim_runtime | |
sh ~/.vim_runtime/install_awesome_vimrc.sh | |
if [ -f "$HOME/.laptop.local" ]; then | |
fancy_echo "Running your customizations from ~/.laptop.local ..." | |
# shellcheck disable=SC1090 | |
. "$HOME/.laptop.local" | |
fi | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment