Skip to content

Commit f2a73ae

Browse files
committed
Developer Environment Setup script
1 parent d87e526 commit f2a73ae

3 files changed

Lines changed: 402 additions & 1 deletion

File tree

README.md

Lines changed: 240 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,241 @@
1-
# developer-mac-setup
1+
# **Mac Setup for Developers**
22
Set of Scripts and Documentation to setup Mac as Development Environment
3+
4+
5+
# **Prerequisite**
6+
- Make sure you have admin permission to execute script to install all the development tools.
7+
- Bash
8+
- Git client to clone this repository. If you do not have Git then you can simply download the repository.
9+
- Comment/Uncomment tools in the script per your need.
10+
11+
Start with this Amazing .bash_profile [MAC OSX BASH PROFILE](https://natelandau.com/my-mac-osx-bash_profile/)
12+
13+
# **Make sure Script have Execution Permission**
14+
```
15+
chmod +x macSetup.sh
16+
```
17+
18+
# **Execute Script to begin Setup**
19+
```
20+
./macSetup.sh
21+
```
22+
23+
24+
## **Install Homebrew & Cask**
25+
- [x] [Homebrew](https://brew.sh)
26+
```
27+
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
28+
brew tap caskroom/cask
29+
```
30+
31+
## **Update Homebrew**
32+
```
33+
brew update
34+
```
35+
36+
## **Install Mac Command Line Tools**
37+
```
38+
xcode-select --install
39+
```
40+
41+
## **Install Browsers**
42+
- [x] [Google Chrome](https://www.google.com/chrome/)
43+
- [ ] [Google Chrome Canary](https://www.google.com/chrome/canary/)
44+
- [x] [Firefox](https://www.mozilla.org/en-US/firefox/new/)
45+
- [ ] [Firefox Developer Edition](https://www.mozilla.org/en-US/firefox/developer/)
46+
```
47+
brew cask install google-chrome
48+
brew cask install firefox
49+
# brew cask install google-chrome-canary
50+
# brew cask install firefox-developer-edition
51+
```
52+
53+
54+
## **Install HashiCorp Tools**
55+
- [x] [Terraform](https://www.terraform.io)
56+
- [x] [Vault](https://www.vaultproject.io)
57+
- [x] [Consul](https://www.consul.io)
58+
- [x] [Packer](https://www.packer.io)
59+
- [x] [Nomad](https://www.nomadproject.io)
60+
- [x] [Vagrant](https://www.vagrantup.com)
61+
```
62+
brew install terraform
63+
brew install vault
64+
brew install consul
65+
brew install nomad
66+
brew install packer
67+
brew cask install vagrant
68+
```
69+
70+
71+
## **Install Virtualization Tools**
72+
- [x] [VMWare Fusion](https://www.vmware.com/products/fusion.html)
73+
- [x] [Oracle Virtualbox](https://www.virtualbox.org)
74+
- [x] [Docker](https://www.docker.com)
75+
- [x] [Vagrant Manager](http://vagrantmanager.com)
76+
```
77+
brew cask install vmware-fusion
78+
brew cask install virtualbox
79+
brew cask install docker
80+
brew cask install vagrant-manager
81+
```
82+
83+
84+
## **Install IDEs (Intellij, Visual Studio, Visual Studio Code, Android Studio)**
85+
- [x] [Intellij](https://www.jetbrains.com/idea/)
86+
- [x] [Visual Studio](https://visualstudio.microsoft.com)
87+
- [x] [Visual Studio Code](https://code.visualstudio.com)
88+
- [x] [Android Studio](https://developer.android.com/studio)
89+
```
90+
brew cask install visual-studio-code
91+
brew cask install intellij-idea
92+
brew cask install visual-studio
93+
brew cask install android-studio
94+
```
95+
96+
# **Install important Visual Studio Code Extensions**
97+
If you want to add any new extension besides all the one's listed below then update vscode-extensions.txt before executing script.
98+
- [x] [GitLens — Git supercharged](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
99+
- [x] [GitHub](https://marketplace.visualstudio.com/items?itemName=KnisterPeter.vscode-github)
100+
- [x] [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare)
101+
- [x] [Quokka.js](https://marketplace.visualstudio.com/items?itemName=WallabyJs.quokka-vscode)
102+
- [x] [Bracket Pair Colorizer](https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer)
103+
- [x] [Visual Studio IntelliCode](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode)
104+
- [x] [Terraform](https://marketplace.visualstudio.com/items?itemName=mauve.terraform)
105+
- [x] [Docker](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker)
106+
- [x] [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer)
107+
- [x] [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python)
108+
- [x] [Path Intellisense](https://marketplace.visualstudio.com/items?itemName=christian-kohler.path-intellisense)
109+
- [x] [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
110+
- [x] [Markdown All in One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)
111+
- [x] [open-in-browser](https://marketplace.visualstudio.com/items?itemName=techer.open-in-browser)
112+
- [x] [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker)
113+
- [x] [Auto Rename Tag](https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag)
114+
- [x] [Auto Close Tag](https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag)
115+
- [x] [Polacode](https://marketplace.visualstudio.com/items?itemName=pnp.polacode)
116+
- [x] [Code Runner](https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner)
117+
- [x] [Paste JSON as Code](https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype)
118+
- [x] [TODO Highlight](https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight)
119+
- [x] [npm](https://marketplace.visualstudio.com/items?itemName=eg2.vscode-npm-script)
120+
- [x] [Regex Previewer](https://marketplace.visualstudio.com/items?itemName=chrmarti.regex)
121+
- [x] [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory)
122+
- [x] [AWS Toolkit for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=AmazonWebServices.aws-toolkit-vscode)
123+
- [x] [C#](https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp)
124+
```
125+
cat ./vscode-extensions.txt | xargs -L1 code --install-extension
126+
```
127+
128+
## **Install AWS Tools**
129+
- [x] [AWS CLI](https://aws.amazon.com/cli/)
130+
- [x] [SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)
131+
```
132+
pip3 --version
133+
curl -O https://bootstrap.pypa.io/get-pip.py
134+
python3 get-pip.py --user
135+
pip3 install awscli --upgrade --user
136+
aws --version
137+
rm get-pip.py
138+
139+
brew tap aws/tap
140+
brew install aws-sam-cli
141+
sam --version
142+
```
143+
144+
## **Install Developer Utilities**
145+
- [x] [SDKMan](https://sdkman.io)
146+
- [x] [Spectacle](https://www.spectacleapp.com)
147+
- [x] [Tree]()
148+
- [x] [Ctop](https://ctop.sh)
149+
- [x] [jq](https://stedolan.github.io/jq/)
150+
- [x] [Postman](https://www.getpostman.com)
151+
- [x] [httpie](https://httpie.org)
152+
- [x] [NVM](https://github.com/nvm-sh/nvm)
153+
- [x] [Bash Completion](https://github.com/scop/bash-completion)
154+
```
155+
curl -s "https://get.sdkman.io" | bash
156+
brew cask install spectacle
157+
brew install tree
158+
brew install ctop
159+
brew install jq
160+
brew cask install postman
161+
brew install httpie
162+
163+
brew install nvm
164+
mkdir ~/.nvm
165+
## TO DO Add to .bash_profile
166+
167+
brew install bash-completion
168+
## TO DO Add to .bash_profile
169+
```
170+
171+
## **Install Language SDKs/Platforms**
172+
- [x] [Dotnet SDK](https://dotnet.microsoft.com/download)
173+
- [x] [Go](https://golang.org)
174+
```
175+
brew cask install dotnet-sdk
176+
brew cask install go
177+
```
178+
179+
## **Install Database Tools**
180+
- [x] [PGAdmin](https://www.pgadmin.org)
181+
- [x] [Mongo Studio 3T](https://studio3t.com)
182+
```
183+
brew cask install pgadmin4
184+
brew cask install studio-3t
185+
```
186+
187+
188+
## **Install Productivity Tools**
189+
- [x] [Slack](https://slack.com)
190+
- [x] [Evernote](https://evernote.com)
191+
- [x] [The Unarchiver](https://theunarchiver.com)
192+
- [x] [CheatSheet](https://mediaatelier.com/CheatSheet/)
193+
- [x] [Adobe Creative Cloud](https://www.adobe.com/creativecloud.html)
194+
```
195+
brew cask install slack
196+
brew cask install evernote
197+
brew cask install the-unarchiver
198+
brew cask install cheatsheet
199+
brew cask install adobe-creative-cloud
200+
```
201+
202+
203+
## **Global Git Config**
204+
```
205+
git config --global push.default current
206+
git config --global core.excludesfile ~/.gitignore
207+
git config --global user.name "<username>"
208+
git config --global user.email <email>
209+
git config --global color.branch auto
210+
git config --global color.diff auto
211+
git config --global color.interactive auto
212+
git config --global color.status auto
213+
git config --global alias.st status
214+
git config --global alias.ci commit
215+
git config --global alias.co checkout
216+
git config --global alias.br branch
217+
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue <%an>%Creset' --abbrev-commit --date=relative"
218+
```
219+
220+
## **Setup Docker Aliases**
221+
```
222+
alias dps='docker ps -a'
223+
alias di='docker images -a'
224+
alias dv='docker volume ls'
225+
alias dn='docker network ls'
226+
alias sprune='docker system prune'
227+
alias vprune='docker volume prune'
228+
```
229+
230+
## **Docker Swarm Aliases**
231+
```
232+
alias dstr='docker stack rm'
233+
alias dsls='docker service ls'
234+
alias dsp='docker service ps'
235+
alias dsl='docker service logs'
236+
alias dsr='docker service rm'
237+
```
238+
239+
# **Resources**
240+
- [MAC OSX BASH PROFILE](https://natelandau.com/my-mac-osx-bash_profile/)
241+
- [New MacBook Setup for Developers by Dan Vega](https://dev.to/therealdanvega/new-macbook-setup-for-developers-2nma)

macSetup.sh

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
#!/bin/bash
2+
3+
## Install Homebrew & Cask
4+
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
5+
brew tap caskroom/cask
6+
7+
## Update Homebrew
8+
brew update
9+
10+
## Install Mac Command Line Tools
11+
xcode-select --install
12+
13+
## Install Browsers (Google Chrome, Firefox)
14+
brew cask install google-chrome
15+
brew cask install firefox
16+
# brew cask install google-chrome-canary
17+
# brew cask install firefox-developer-edition
18+
19+
20+
## Install HashiCorp Tools (Terrafor, Vault, Consul, Packer & Vagrant)
21+
brew install terraform
22+
brew install vault
23+
brew install consul
24+
brew install nomad
25+
brew install packer
26+
brew cask install vagrant
27+
28+
29+
## Install Virtualization Tools (VMWare Fusion, Oracle Virtualbox, Docker, Vagrant Manager)
30+
brew cask install vmware-fusion
31+
brew cask install virtualbox
32+
brew cask install docker
33+
brew cask install vagrant-manager
34+
35+
36+
## Install IDEs (Intellij, Visual Studio, Visual Studio Code, Android Studio)
37+
brew cask install visual-studio-code
38+
brew cask install intellij-idea
39+
brew cask install visual-studio
40+
brew cask install android-studio
41+
42+
# Install important Visual Studio Code Extensions
43+
cat vscode-extensions.txt | xargs -L1 code --install-extension
44+
45+
## Install AWS Tools (AWS CLI & SAM CLI)
46+
pip3 --version
47+
curl -O https://bootstrap.pypa.io/get-pip.py
48+
python3 get-pip.py --user
49+
pip3 install awscli --upgrade --user
50+
aws --version
51+
rm get-pip.py
52+
53+
brew tap aws/tap
54+
brew install aws-sam-cli
55+
sam --version
56+
57+
## Install Developer utilities (SDKMan, Spectacle, Tree, Ctop, JQ, Postman, httpie, NVM, Bash Completion)
58+
curl -s "https://get.sdkman.io" | bash
59+
echo '
60+
# THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
61+
export SDKMAN_DIR="/Users/mpatel/.sdkman"
62+
[[ -s "/Users/mpatel/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/mpatel/.sdkman/bin/sdkman-init.sh"
63+
' >> ~/.bash_profile
64+
65+
brew cask install spectacle
66+
brew install tree
67+
brew install ctop
68+
brew install jq
69+
brew cask install postman
70+
brew install httpie
71+
72+
brew install nvm
73+
mkdir ~/.nvm
74+
echo '
75+
# NVM CONFIG
76+
export NVM_DIR="$HOME/.nvm"
77+
[ -s "$(brew --prefix)/opt/nvm/nvm.sh" ] && . "$(brew --prefix)/opt/nvm/nvm.sh" # This loads nvm
78+
[ -s "$(brew --prefix)/opt/nvm/etc/bash_completion.d/nvm" ] && . "$(brew --prefix)/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion' >> ~/.bash_profile
79+
80+
brew install bash-completion
81+
echo '
82+
# BASH-COMPLETION CONFIG
83+
[[ -r "$(brew --prefix)/etc/profile.d/bash_completion.sh" ]] && . "$(brew --prefix)/etc/profile.d/bash_completion.sh"' >> ~/.bash_profile
84+
85+
## Install Language SDKs/Platforms
86+
brew cask install dotnet-sdk
87+
brew cask install go
88+
89+
## Install Database Tools (PGAdmin, Mongo Studio 3T)
90+
brew cask install pgadmin4
91+
brew cask install studio-3t
92+
93+
94+
## Install Productivity Tools (Slack, Evernote, Unarchiver, CheatSheet, Adobe Creative Cloud)
95+
brew cask install slack
96+
brew cask install evernote
97+
brew cask install the-unarchiver
98+
brew cask install cheatsheet
99+
brew cask install adobe-creative-cloud
100+
101+
## Global Git Config
102+
git config --global push.default current
103+
git config --global core.excludesfile ~/.gitignore
104+
git config --global user.name "<username>"
105+
git config --global user.email <email>
106+
git config --global color.branch auto
107+
git config --global color.diff auto
108+
git config --global color.interactive auto
109+
git config --global color.status auto
110+
git config --global alias.st status
111+
git config --global alias.ci commit
112+
git config --global alias.co checkout
113+
git config --global alias.br branch
114+
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
115+
116+
## Setup Docker Aliases
117+
echo "
118+
alias dps='docker ps -a'
119+
alias di='docker images -a'
120+
alias dv='docker volume ls'
121+
alias dn='docker network ls'
122+
alias sprune='docker system prune'
123+
alias vprune='docker volume prune'
124+
125+
126+
## Docker Swarm Aliases
127+
alias dstr='docker stack rm'
128+
alias dsls='docker service ls'
129+
alias dsp='docker service ps'
130+
alias dsl='docker service logs'
131+
alias dsr='docker service rm'
132+
" >> ~/.bash_profile
133+
134+
135+
## Source Bash Profile
136+
source ~/.bash_profile

0 commit comments

Comments
 (0)