Laptop is a script to set up an macOS laptop for web and mobile development based on Thoughbot laptop project.
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. Bug reports for older versions are welcome.
Download the script:
curl --remote-name https://raw.githubusercontent.com/picuscreative/laptop/master/macReview the script (avoid running scripts you haven't read!):
less macExecute the downloaded script:
sh mac 2>&1 | tee ~/laptop.logOptionally, review the log:
less ~/laptop.logYour last Laptop run will be saved to ~/laptop.log. Read through it to see if you can debug the issue yourself. If not, copy the lines where the script failed into a new GitHub Issue for us. Or, attach the whole log file as an attachment.
macOS tools:
- Homebrew for managing operating system libraries.
Unix tools:
- Exuberant Ctags for indexing files for vim tab completion
- Git for version control
- OpenSSL for Transport Layer Security (TLS)
- RCM for managing company and personal dotfiles
- The Silver Searcher for finding things in files
- Tmux for saving project state and switching between projects
- Watchman for watching for filesystem events
- Zsh as your shell
- Oh My Zsh will not make you a 10x developer...but you might feel like one.
Image tools:
- ImageMagick for cropping and resizing images
Programming languages, tools, package managers, and configuration:
- ASDF for managing programming language versions
- Bundler for managing Ruby libraries
- Node.js and NPM, for running apps and installing JavaScript packages
- Ruby stable for writing general-purpose code
- Vagrant for development virtual machines
- Varying Vagrant Vagrants for Wordpress development with Vagrant
Day to day dependencies:
- Visual Studio Code
- Google Chrome
- Google Backup and Sync
- Gyazo
- Filezilla
- Firefox
- Iterm2
- Postman
- SequelPro
- Skype
- Slack
- SourceTree
- Spectacle
- Toggl
- VirtualBox
It should take less than 30 minutes to install (depends on your machine and network conditions).
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 fiWrite 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.
Edit the mac file. Document in the README.md file. Follow shell style guidelines by using ShellCheck and Syntastic.
brew install shellcheckThank you Thoughbot and contributors!