/DevMyMac

✨ ✨ A Simple Tool To Setup A Mac for Development✨✨

Primary LanguageShell

DevMyMac

Join the chat at https://gitter.im/DevMyMac/Lobby

Welcome To DevMyMac!

DevMyMac is a script that allows the user to setup their OSX / MacOS Computer for Development in

  • Ruby
  • Java
  • Android Development
  • Unity3D
  • Python
  • Javascript
  • PHP

See Below For whats installed!

Works with OSX Yosemite, OSX El Capitan & MacOS Sierra

Using the Script

To use this script, first you must install XCode, or the XCode Command Line Tools. To install the command line tools, use the command:

xcode-select --install

Then you can use the script!

sh -c "$(curl -fsSL https://raw.githubusercontent.com/adamisntdead/DevMyMac/master/setup.sh)"


Whats Installed

Core

Set Computer Name

The first thing the script does when you run it, is you are prompted for the name of your computer. Then, we take the name and use it to set the hostname and computer name.

sudo scutil --set ComputerName "$cpname"
sudo scutil --set HostName "$cpname"
sudo scutil --set LocalHostName "$cpname"
defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "$cpname"
Settings Changes

After this we make a few changes to the settings:

  • Enable Press and hold keys defaults write -g ApplePressAndHoldEnabled -bool false
  • Show Path in the Finder defaults write com.apple.finder ShowPathbar -bool true
  • Speed Up Key Press Repeat defaults write NSGlobalDomain KeyRepeat -int 0.02
  • Speed Up Time Taken to Start Key Repeats defaults write NSGlobalDomain InitialKeyRepeat -int 12
  • Show The Library Folder chflags nohidden ~/Library
Git Configuration

You will be prompted for your name and Git E-Mail. This is to set the git configuration values.

git config --global user.email "adam@adamkellydesign.com"
git config --global user.name "Adam Kelly"
Zsh

Next, the script will install OhMyZsh, which isa really nice configuration pack for Zsh, which is the shell of choice for many, including myself. We don't need to install zsh, as its already installed on OSX.

Homebrew

Homebrew is a package manager for OSX / MacOS, thats quite popular. Its buit on Ruby, and is really simple to use. It is what we will use to install most of the software and packages in the script.

You install it using the command:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Options

You will now be prompted for a few options on what you would like to install, see the individual sections on each one for a full explenation

Packages and Software

One of the main parts of this script is the ease of installing the Packages / Apps you use quickly. To do this, we are going to use Homebrew, and a Homebrew tap called Cask.

To install cask, we use this command:

brew tap caskroom/cask

Now we can use 2 commands to install apps and packages.

To install a homebrew package normally, we use the command brew install package-name, and to install an app using Cask, we use brew cask install app-name.

As part of this script we install these packages:

  • Tree
  • wGet
  • ACK
  • Heroku-Toolbelt

Using this command:

brew install \
  tree \
  wget \
  ack \
  heroku-toolbelt

And install these apps:

  • Google Chrome
  • Coderunner 2
  • Evernote
  • Firefox
  • Spotify
  • Gitter
  • Github Desktop
  • Atom
  • GitKraken
  • Open Broadcast Software (OBS)
  • Steam
  • Mamp
  • MacDown
  • Google Drive
  • iTerm 2
  • Sublime Text
  • Virtualbox
  • Minecraft
  • Scratch

Using this command:

brew cask install \
  google-chrome \
  coderunner \
  evernote \
  firefox \
  spotify \
  gitter \
  github-desktop \
  atom \
  gitkraken \
  obs \
  steam \
  mamp \
  macdown \
  google-drive \
  iterm2 \
  sublime-text \
  virtualbox \
  minecraft \
  scratch

Finally, we install EMacs

brew install emacs --with-cocoa
brew linkapps emacs

Node

Instead of installing Nodejs via Homebrew, we can install it via Node Version Manager, This gives us more control over what versions we are using, which is handy when testing our code for backwards compatibility. We install NVM with this command: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash

Then we can use NVM to install the latest version of Node, and then tell NVM to use that version.

nvm install node
nvm use node

Now we have access to the Node command, and also NPM (Node Package Manager). The script also installs some modules for convenience (Bower, Gulp, Grunt-CLI, Coffeescript, JSHint and LESS)

Java

To setup for java development, we want to install the JDK (Java Development Kit), along with my IDE of choice, eclipse.

Thankfully, we can install all of these using Homebrew:

brew cask install \
  java \
  eclipse-ide \
  eclipse-java

Android Development

To develop for android devices, we need a few things, The JDK, Android Studio, The Android SDK and Possibly an IDE (Eclipse)

Again, we can do all of this with Homebrew. First we install the JDK as its a dependency for others, then the IDE's and finally the Android SDK:

brew cask install \
  java \
  eclipse-ide \
  eclipse-java \
  android-studio \
  intellij-idea-ce

brew install android-sdk

Ruby

Like with node, the best wasy to install ruby is by using the Ruby Version Manager. This means we can easily control what version of ruby we are using, which again is helpful for backwards checking ect.

First, we must setup something to get a key, so that the installation doesnt fail.

brew install gpg
command curl -sSL https://rvm.io/mpapis.asc | gpg --import -

then we can run the RVM install script

\curl -L https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm

And then finally we can install the latest version of ruby:

rvm install ruby-2.3.1

Now we have Ruby and Ruby Gems installed, we can install rails

gem install bundler
gem install rails

Unity3D

This bit is quite simple, to install Unity3D We can just use the cask for both Unity and the Unity Web Player The command is the same as the installation of the core apps:

brew cask install unity unity-web-player

Databases

In this option, we install a few types of database, which is very useful for PHP, Ruby and Node Apps. We are going to install a few common ones:

  • MySQL (with MySQL Workbench)
  • Postgresql
  • MongoDB
  • Redis
  • Elastic Search

We can install all of these using homebrew, and we can install MySQL Workbench Using Cask

brew install \
  mysql \
  postgresql \
  mongodb \
  redis \
  elasticsearch

brew cask install mysqlworkbench