• Stars
    star
    365
  • Rank 116,851 (Top 3 %)
  • Language
    Shell
  • Created over 8 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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 "[email protected]"
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

More Repositories

1

QuSimPy

A Multi-Qubit Ideal Quantum Computer Simulator
Python
719
star
2

NoGithubDarkMode

A Chrome Extension to Remove the dark menu bar from GitHub.
CSS
67
star
3

wbpck-bundler

A Little Toy Javascript Module Bundler 🎁
JavaScript
40
star
4

medium-toc

Easily create a table of contents for your Medium articles in just one click. ✨
JavaScript
33
star
5

console.md

Ever dreamed of rendering Markdown in the console? No. Neither had I.
JavaScript
26
star
6

poke

A simple tool to check your site for broken links, media, iframes, stylesheets, scripts, forms or metadata.
JavaScript
25
star
7

Unity3D-Hypersolids

◻️ A Way To Create, Show, and Rotate 4D Objects in Unity 3D
C#
24
star
8

qics

Javascript Idealistic Quantum Computer SImulation Library
JavaScript
6
star
9

how-sound-works

An explainer video built with 3blue1brown's manim
Python
6
star
10

boilerplate

A Modern, Gulp Based, Front End Build Setup 😊
CSS
4
star
11

wasm-starter

WebAssembly Module Starter Code, Powered by Rust, wasm-pack, wasm-bindgen and Webpack 🔥😍
HTML
4
star
12

self-hosted-services

A collection of docker-compose files for the services that I self host
Shell
4
star
13

DublinBus

Get the Realtime and Stop Information from the Dublin Bus REST API
JavaScript
3
star
14

theory-test-questions

A List Of Sample Questions And Answers For The Irish Driver Theory Test
JavaScript
3
star
15

Overflowing

📙 Find Out How Much You Really Use Stack Overflow 📙
JavaScript
3
star
16

wasm-markov

Markov Chains Implemented in Rust, Powered By WebAssembly 🔥
Rust
2
star
17

Excerpt

Hassle Free Excerpts/Extracts For ExpressionEngine 3 and 4 🎉💻
PHP
2
star
18

TuneBot

A Facebook Messenger bot that takes the name of an Irish music tune, and gives suggestions as to what you could play with it. Powered by the Session.org
JavaScript
2
star
19

node-static-site

My talk for the NodeJS Dublin Meetup, April 2018⚡️
CSS
2
star
20

norton-rating

Get the safety rating of a site from Norton Safe Web
JavaScript
1
star
21

Hackr-News

📰 A Hacker News Front Page clone in React
JavaScript
1
star
22

glassdoor-question-scrape

A small tool to scrape past interview questions from Glassdoor
JavaScript
1
star
23

obj-value

Safely access javascript property values
JavaScript
1
star
24

context-api-demo

A Small App Demonstrating React 16.3's Context API 😊
JavaScript
1
star
25

Imagine

A Toy Complex Number Library in Javascript
JavaScript
1
star
26

rustfest-demos

Rust
1
star
27

Menubar-Boilerplate

A Simple Boilerplate for Menubar Apps
JavaScript
1
star
28

Files

Random Files to Host
1
star
29

gulp-inline-imagesize

A Gulp Task To Add Image Size Comments To Your HTML
JavaScript
1
star
30

pingdom-widget

A CraftCMS Widget To Show Stats From Pingdom On The Dashboard ⏱🔋🔌
PHP
1
star
31

markov-chains

Markov Chains Implemented in Rust
Rust
1
star
32

lucas-lehmer

A Javascript Implementation of the Lucas-Lehmer Primality Test for Mersenne Primes
JavaScript
1
star
33

hasty

Automatically Create Presentations From Any Article
JavaScript
1
star
34

toy-cfr-solver

A toy implementation of CFR
C++
1
star
35

Change-HTTP

An Expression Engine Extension to change 'HTTP' to 'HTTPS'
PHP
1
star
36

Minimo

A Responsive, Minimal App Landing Page Template
CSS
1
star
37

personal-site

My Personal Site
HTML
1
star
38

context-api-talk

Slides For My Lightning Talk About The Context API For ReactJS Dublin ⚡️
JavaScript
1
star
39

mental-math

A Speed Arithmetic Game
JavaScript
1
star
40

notes

My School Notes, Managed With Git
TeX
1
star
41

BusPebble

Dublin Bus Realtime Information from your Pebble
JavaScript
1
star
42

polls-party

Anonymous Location Based Polls
JavaScript
1
star
43

alfred-workflows

🎩 My collection of Alfred Workflows
1
star
44

vonbot

A discord bot for interacting with my personal problem database
1
star
45

snell

A Two.js Visualization of Snell's Law
JavaScript
1
star
46

random-value

Javascript Random Value Generation
JavaScript
1
star
47

tim

A Minimal Hugo Theme Based On Tim Holman's Site, tholman.com
CSS
1
star
48

polymarket-research

Jupyter Notebook
1
star
49

higher-shapes

Visualize n-Dimensional Polytopes From Your Browser.
JavaScript
1
star