diff --git a/.gitignore b/.gitignore index 5e1422c..52c745b 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,8 @@ build-iPhoneSimulator/ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: .rvmrc +/.idea/.gitignore +/.idea/bambrew.iml +/.idea/misc.xml +/.idea/modules.xml +/.idea/vcs.xml diff --git a/README.md b/README.md index b32293f..34293be 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,16 @@ Bambrew - Bamboo Engineering's development environment setup tooling # First time setup +1. Copy on your personl SSH keys to ~/.ssh (including the one you use to access GitHub). +1. On another machine (maybe) set up a GitHub [personal access token][1]. +1. Create a file in the following format and copy it to `~/.config/hub`: + ```yaml + github.com: + - user: + oauth_token: + protocol: https + ``` 1. Ask an existing `bambooengineering/umbrella` administrator to grant you repo access -1. Setup a GitHub [personal access token][1] 1. Run the following at a command prompt: ``` diff --git a/run_bamstrap b/run_bamstrap index b65bd94..c280853 100755 --- a/run_bamstrap +++ b/run_bamstrap @@ -1,6 +1,5 @@ -#!/bin/bash - -set -e +#!/usr/bin/env bash +set -eu if [ -z "$USER" ]; then echo "Aborting! No USER environment variable set" @@ -12,22 +11,48 @@ if [ "$(id -u)" = 0 ]; then exit 4 fi -if ! command -v curl >/dev/null 2>&1; then - echo "Aborting! No curl found (install and retry)" - exit 5 +echo "Requesting sudo access to install packages if needed" +sudo date + +if ! [ -x "$(command -v curl)" ]; then + echo "Installing curl..." + sudo apt-get install -y curl fi -if ! command -v ruby >/dev/null || \ - (command -v ruby >/dev/null && ruby -e 'exit RUBY_VERSION.split(".").first(2).join(".").to_f < 2.3'); then - echo "No suitable Ruby found (installing vendor Ruby)" - eval "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install-ruby)" +if [ ! -f "$HOME/.ssh/id_rsa.pub" ]; then + echo "Ensure you have your GitHub SSH key at ~/.ssh/id_rsa.pub" + exit 1 fi -if [ -z "$GITHUB_TOKEN" ]; then - echo "Please provide your Github Token (you can generate one at https://github.com/settings/tokens):" - read -s GITHUB_TOKEN +echo "Checking for brew installation" +if ! [ -x "$(command -v brew)" ]; then + # https://docs.brew.sh/Homebrew-on-Linux + echo "Installing brew..." + sudo apt-get install -y build-essential procps file git + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + # Allow brew to be used in this script + eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" fi +echo "Checking for rbenv installation" +if ! [ -x "$(command -v rbenv)" ]; then + echo "Installing rbenv" + brew install rbenv +fi + +if [ ! -f "$HOME/.rbenv/shims/ruby" ]; then + echo "No suitable Ruby found. Installing ruby via rbenv..." + sudo apt-get install -y libz-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev + rbenv install 3.1.3 +fi + +if [ ! -f "$HOME/.config/hub" ]; then + echo "Ensure you have set up your GitHub access token in ~/.config/hub" + exit 1 +fi + +GITHUB_TOKEN=$(ruby -e "require 'yaml'; puts YAML.load_file(Dir.home + '/.config/hub')['github.com'][0]['oauth_token']") + run_curl() { ORGANISATION="bambooengineering" REPO="umbrella" @@ -47,4 +72,4 @@ if [ "$code" != "200" ]; then exit 7 fi -ruby -e "$(run_curl)" +$HOME/.rbenv/shims/ruby -e "$(run_curl)"