Laptop is a script to set up an macOS laptop for web and mobile development.
- It can be run multiple times on the same machine safely.
- It installs, upgrades, or skips packages
- based on what is already installed on the machine.
We support:
- macOS Mavericks (10.9)
- macOS Yosemite (10.10)
- macOS El Capitan (10.11)
- macOS Sierra (10.12)
Older versions may work but aren't regularly tested.
Download the script:
curl --remote-name https://raw.githubusercontent.com/joshkennedy/laptop/master/mac
Review the script (avoid running scripts you haven't read!):
less mac
Execute the downloaded script:
sh mac 2>&1 | tee ~/laptop.log
Optionally, review the log:
less ~/laptop.log
- Homebrew for managing operating system libraries.
- Slack for internal team communication
- iTerm2 for a better terminal experience
- Atom, Sublime Text, and Visual Studio for coding magicks
- Git for version control
- The Silver Searcher for finding things in files
- Watchman for watching for filesystem events
- Zsh as your shell
- ImageMagick for cropping and resizing images
- Qt 5 for headless JavaScript testing via Capybara Webkit
- Bundler for managing Ruby libraries
- Node.js and NPM, for running apps and installing JavaScript packages
- Ruby stable for writing general-purpose code
- Yarn for managing JavaScript packages
- Postgres for storing relational data
It should take less than 15 minutes to install (depending on your machine).
Your ~/.laptop.local
is run at the end of the Laptop script. Put your customizations there.
For example:
#!/bin/sh
brew bundle --file=- <<EOF
brew "Caskroom/cask/dockertoolbox"
brew "go"
brew "ngrok"
brew "watch"
EOF
default_docker_machine() {
docker-machine ls | grep -Fq "default"
}
if ! default_docker_machine; then
docker-machine create --driver virtualbox default
fi
default_docker_machine_running() {
default_docker_machine | grep -Fq "Running"
}
if ! default_docker_machine_running; then
docker-machine start default
fi
fancy_echo "Cleaning up old Homebrew formulae ..."
brew cleanup
brew cask cleanup
if [ -r "$HOME/.rcrc" ]; then
fancy_echo "Updating dotfiles ..."
rcup
fi
Write your customizations such that they can be run safely more than once. See the mac
script for examples.
Laptop functions such as fancy_echo
and gem_install_or_update
can be used in your ~/.laptop.local
.
See the wiki for more customization examples.
Laptop is © 2011-2017 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.