/workstation-setup

Scripts to automatically set up a machine for development the "Pivotal" way

Primary LanguageShellMIT LicenseMIT

Workstation Setup

This project automates the process of setting up a new Pivotal machine using a simple Bash script.

Goals

The primary goal of this project is to give people a simple script they can run to make their machine a bit more useful and standard for working on Pivotal projects.

  • A bash script is easy for users to edit locally on-the-fly for small temporary tweaks
  • Everything is in one repository
  • The project name is informative
  • Keep it easy to fork and customize
  • It has very limited requirements: git, bash and Ruby are all available on macOS by default

Anti-goals

This project does not aim to do everything. Some examples:

  • We don't install everything that your project needs. These scripts should only install generally useful things, and prefer running quickly over being complete.
  • We avoid setting up and maintaining overly-custom configurations. When there is already a tool that will get us something in a conventional manner, such as bash-it, we prefer to use it instead of doing things ourselves.

Warning: the automation script is currently aggressive about what it does and will overwrite vim configurations, bash-it configurations, etc.

Getting Started

  • Run the latest version of macOS, currently High Sierra, unless you have a specific reason not to
  • These scripts might work on previous versions, but are maintained with only the latest macOS in mind
  • If you are not on High Sierra, you need to install the latest version of Xcode
  • On High Sierra, once you have used git (below), you will have installed the command line developer tools

Open up Terminal.app and run the following commands:

mkdir -p ~/workspace
cd ~/workspace
git clone https://github.com/pivotal/workstation-setup.git
cd workstation-setup

Engineering Machine

If you're setting up an engineering machine choose which languages to install:

# For Labs developers (remove unnecessary languages when running command)
./setup.sh java ruby node golang python c docker

# For Data developers
./setup.sh c golang java docker

# For .net
./setup.sh dotnet

The list of Engineering applications is found in: applications-common.sh

Designer Machine

If you're setting up a design machine run the following:

./setup.sh designer

In addition to the Engineering applications, this script also installs the list of Design applications found in: applications-designer.sh

XP Workshop

If you're setting up a machine for the XP workshop run the following:

./setup.sh java node

Analytics

The tool will send anonymous user data to our Google Analytics account, so we can see what command line arguments are popular. You can disable this:

# Remove unnecessary languages when running command
SKIP_ANALYTICS=1 ./setup.sh java ruby node golang c docker

This will also disable brew's data collection.

Having problems?

If you're having problems using the setup script, please let us know by opening an issue.

If you see errors from brew, try running brew doctor and include the diagnostic output in your issue submission.

Customizing

If you'd like to customize this project for a project's use:

  • Fork the project
  • Edit the shells scripts to your liking
  • Profit

Frequently Asked Questions

Is it okay to run ./designer.sh command again?

Yes. The script does not reinstall apps that are already on the machine.

What about sprout-wrap?

This project is provided as an alternative to the pivotal-sprout/sprout-wrap project. You are encouraged to use that project if it better suits your needs.

The goals of this projects is to keep the setup process simple and up to date:

Please see this GitHub issue for more discussion on the subject.