11#! /bin/bash
22
3-
4- brewCask=(" brave-browser" " 1password" " iterm2" " slack" " expressvpn" " visual-studio-code" " steam" " vlc" " qbittorrent" " zoomus" " goland" " ngrok" " adoptopenjdk/openjdk/adoptopenjdk8" " docker" " dbeaver-community" )
5- brew=(" go" " git" " bat" " zsh" " z" " vim" " wget" " curl" " htop" " pipenv" " gcc" " tree" " jq" " postgres" " coreutils" " r" " rsync" " tmux" " maven" " watch" " gdrive" " go-task/tap/go-task" " goreleaser" " pandoc" " rename" " hub" " sqlite" )
6- npmGlobals=(" vercel" " http-server" " npm-check-updates" )
7-
8- # Annoying macos stuff
9- echo -n " setting key repeat..."
10- defaults write -g InitialKeyRepeat -int 13 # normal minimum is 15 (225 ms)
11- defaults write -g KeyRepeat -int 2 # normal minimum is 2 (30 ms)
12- echo " done"
13- echo -n " cleaning toolbar..."
14- defaults write com.apple.dock persistent-apps -array
15- echo " done"
16-
17- # Install Brew
18- echo -n " installing brew..."
19- command -v brew > /dev/null 2>&1 || { echo >&2 " Installing Homebrew Now" ; \
20- /usr/bin/ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) " ; }
21- brew tap homebrew/cask-drivers
22- echo " done"
23-
24- for i in ${brewCask[@]} ; do
25- echo -n " installing $i ..."
26- brew list --cask $i > /dev/null 2>&1 || brew install --cask $i
27- echo " done"
28- done
29-
30- for i in ${brew[@]} ; do
31- echo -n " installing $i ..."
32- brew list $i > /dev/null 2>&1 || brew install $i
33- echo " done"
34- done
35-
36-
37- # Oh My Zsh
38- echo -n " installing zsh / oh my zsh..."
39- sh -c " $( curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh) " > /dev/null 2>&1
40- if grep -q " zshrc-ext" ~ /.zshrc; then
41- echo -n " "
42- else
43- echo " source ~/.zshrc-ext" >> ~ /.zshrc
44- chsh -s /usr/local/bin/zsh
45- fi
46- echo " done"
47-
48- echo " plugins=(git colored-man colorize pip python brew osx zsh-syntax-highlighting)" > ~ /.zshrc-ext
49- echo " . ` brew --prefix` /etc/profile.d/z.sh" >> ~ /.zshrc-ext
50- echo " disable r functions" >> ~ /.zshrc-ext
51-
52- # Miro
53- echo -n " installing miro..."
54- mdfind " kMDItemKind == 'Application'" | grep Miro > /dev/null 2>&1
55- res=$?
56- if [ $res -ne 0 ]; then
57- wget -O /tmp/miro.dmg " https://desktop.realtimeboard.com/platforms/darwin/Miro%20-%20formerly%20RealtimeBoard.dmg"
58- hdiutil mount /tmp/miro.dmg
59- sudo cp -R " /Volumes/Miro - formerly RealtimeBoard/Miro - formerly RealtimeBoard.app" /Applications/Miro.app
60- hdiutil unmount " /Volumes/Miro - formerly RealtimeBoard/"
61- fi
62- echo " done"
63-
64-
65- echo " setting up git"
66- echo " username:"
67- read gitUsername
68- echo " email:"
69- read gitEmail
70-
71- git config --global user.email " $gitEmail "
72- git config --global user.name " $gitUsername "
73- git config --global pager.branch false
74-
75- echo " configuring ssh"
76- ssh-keygen -t rsa -b 4096 -C " $gitEmail " -q -N " " -f ~ /.ssh/id_rsa
77-
78- # Node
79- echo " installing nvm..."
80- command -v nvm > /dev/null 2>&1
81- nvmExists=$?
82- if [ $nvmExists -ne 0 ]; then
83- NVM_DIR=" "
84- nvmLatest=$( curl https://github.com/nvm-sh/nvm/releases/latest | egrep -so " [0-9]*\.[0-9]*\.[0-9]*" )
85- nodeLatest=$( curl https://github.com/nodejs/node/releases/latest | egrep -so " [0-9]*\.[0-9]*\.[0-9]*" )
86- echo -n " nvm: $nvmLatest node: $nodeLatest "
87- curl -s -o- " https://raw.githubusercontent.com/nvm-sh/nvm/v${nvmLatest} /install.sh" | bash
88- NVM_DIR=" $HOME /.nvm"
89- [ -s " $NVM_DIR /nvm.sh" ] && \. " $NVM_DIR /nvm.sh"
90- nvm install $nodeLatest
91- fi
92-
93- for i in ${npmGlobals[@]} ; do
94- echo -n " installing $i ..."
95- npm install -g $i
96- echo " done"
97- done
98-
99- echo " done"
100-
101- # Go paths
102- echo ' export GOPATH="${HOME}/.go"' >> ~ /.zshrc-ext
103- echo ' export GOROOT="$(brew --prefix golang)/libexec"' >> ~ /.zshrc-ext
104- echo ' export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"' >> ~ /.zshrc-ext
3+ brewCasks=" brave-browser 1password iterm2 slack expressvpn
4+ visual-studio-code steam vlc qbittorrent zoom
5+ goland ngrok docker dbeaver-community"
6+
7+ brews=" go git bat zsh z vim wget curl htop pipenv gcc tree
8+ jq postgresql coreutils r rsync tmux maven watch
9+ gdrive go-task goreleaser pandoc rename
10+ hub sqlite mysql-client openjdk@8"
11+
12+ npmGlobals=" vercel http-server npm-check-updates"
13+
14+ # exit if anything fails
15+ set -e
16+
17+ # ask for sudo up front so we don't need to ask for passwords later
18+ sudo -v
19+
20+ ./scriptlets/setup-macos-defaults.sh
21+ ./scriptlets/setup-brew.sh
22+ ./scriptlets/setup-brew-casks.sh $brewCasks
23+ ./scriptlets/setup-brews.sh $brews
24+ ./scriptlets/setup-oh-my-zsh.sh
25+ ./scriptlets/setup-git.sh
26+ ./scriptlets/setup-nvm.sh
27+ ./scriptlets/setup-npm-globals.sh $npmGlobals
28+ ./scriptlets/setup-go.sh
29+ echo " "
30+ echo " complete"
0 commit comments