Skip to content

A shell script which turns your OS X laptop into an awesome web development machine.

Notifications You must be signed in to change notification settings

xuncheng/laptop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Laptop

Build Status

Laptop is a script to set up an OS X computer for web 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.

Requirements

  • macOS Ventura (13.0.1)

Older versions may work but aren't regularly tested. Bug reports for older versions are welcome.

Install

Download, review, then execute the script:

curl --remote-name https://raw.githubusercontent.com/xuncheng/laptop/master/mac
sh mac 2>&1 | tee ~/laptop.log

The script itself is available in this repo for you to review if you want to see what it does and how it works.

Note that the script will ask you to enter your OS X password at various points. This is the same password that you use to log in to your Mac.

Once the script is done, make sure to quit and relaunch Terminal.

Debugging

Your last Laptop run will be saved to ~/laptop.log. Read through it to see if you can debug the issue yourself. If not, copy and paste the entire log into a new GitHub Issue for us.

What it sets up

macOS tools:

Unix tools:

  • Exuberant Ctags for indexing files for vim tab completion
  • Git for version control
  • OpenSSL for Transport Layer Security (TLS)
  • Selecta A fuzzy text selector for files and anything else you need to select.
  • The Silver Searcher for finding things in files
  • Tmux for saving project state and switching between projects
  • Zsh as your shell

Image tools:

Testing tools:

  • Qt for headless JavaScript testing via Capybara Webkit

Programming languages and configuration:

  • Bundler for managing Ruby libraries
  • NVM for managing Node.js versions if you do not have Node.js already installed (Includes latest Node.js and NPM, for running apps and installing JavaScript packages)
  • RVM for managing Ruby versions (includes Bundler and the latest Ruby)
  • Ruby stable for writing general-purpose code

Databases:

  • Redis for storing key-value data

It should take less than 15 minutes to install (depends on your machine and internet connection).

Customize in ~/.laptop.local

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.

Credits

This laptop script is originally based on thoughtbot's laptop script.

About

A shell script which turns your OS X laptop into an awesome web development machine.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages