[Sleepy] Provide some easy to use ansbile playbooks to turn your laptop to awesome.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
quick-and-dirty Replace fish with zsh Jun 25, 2017
roles Add `/usr/local/sbin` to `$PATH` Sep 27, 2017
tests Add alias test Jun 30, 2017
tools Fix indentation for creating role script. Jun 26, 2017
.gitignore Ignore ".vagrant" files. Jun 26, 2017
LICENSE Apply BSD 3-clause license Sep 30, 2016
README.org Update homebrew cask installation. Aug 1, 2017
Vagrantfile
bootstrap.sh Update homebrew cask installation. Aug 1, 2017
circle.yml Try circleci for linux Jun 25, 2017
localhost Use local connection for localhost. Mar 3, 2015
oh-my-laptop.yml Init docker, still lacks detailed documentation. Jun 26, 2017

README.org

Oh My Laptop

https://circleci.com/gh/xiaohanyu/oh-my-laptop.svg?style=shield&circle-token=8e3f2e95c4217e6db0c4ad3ccc2cb506479d65ec

Introduction

Tired of spending a whole day configuring your Mac/Linux? Then you’ve come to the right place.

Oh-my-laptop try to provide a simple, modular and flexible way to turn your laptop into an awesome working partner.

This project starts out as a bunch of personal scripts, days when I have to initialize my laptop, my vagrant box, my newly-got Mac. I’m tired and I want some robots.

Actually, Github has a similar project called boxen. However, boxen only works for Mac and it adopt Puppet and I dislike Puppet.

I prefer ansible, for its simplity. Ansible requires no agent in client. The only thing ansible requires is ssh, which lives on almost every *nix based machine. Second, unlike Puppet/Chef, which create a huge and complex DSL, ansible adopt YAML, which makes it quite easy to learn, read and write.

Currently, oh-my-laptop has been tested on Mac OS X 10.10 and Linux Mint 17 KDE, and it should works on some Ubuntu-derived Linux distributions—which means, I don’t have too much time to test all Ubuntu(apt-get)-derived Linux distributions.

Features

  • Modular, only install and configure necessary packages as you need.
  • Literate, every package has full documentation or links to demonstrate why we choose it and why we configure it this way.
  • Simple, all modules are written in ansible playbook, plain YAML format, quite easy to read, write and contribute.
  • Fast, all ansible roles in oh-my-laptop are idempotent, and roles always has proper dependency relations, and it is guaranteed that each role will be played once and only once, no matter in what order you specify it.

Quick Start

Mac OS X 10.10

To start, you need to install the following things.

XCode

Please download and install Xcode from the Mac App Store and the necessary Command Line Tools, refer this post for simple tutorial.

Homebrew

There’re various package managers for Mac, among which homebrew is the best and most popular. It’s quite easy to install:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Then you also get homebrew cask via:

brew tap caskroom/cask

Homebrew cask is really great if you want to install some huge binary packages such as Emacs, pycharm, etc.

Ansible

The only thing oh-my-laptop depends is ansible, please do install it before you join the journey.

Will you trust me?

I’ve write a bootstrap script to get homebrew(on Mac) and ansible for you:

curl -L https://raw.githubusercontent.com/xiaohanyu/oh-my-laptop/master/bootstrap.sh | bash

What’s inside?

One line code to get all packages configured by oh-my-laptop:

find . -name README.org | xargs grep "|" | grep -v Package | grep -v '\-\-\-\-' | sed 's/^.*org://g'
PackageStatusAptHomebrew
autojumpRequiredOKOK
agRequiredOKOK
clocRequiredOKOK
htopRequiredOKOK
md5sha1sumRequiredNaNOK
rangerRequiredOKOK
rlwrapRequiredOKOK
wgetRequiredOKOK
tmuxRequiredOKOK
zshRequiredOKOK
oh-my-zshRequiredOKOK
editorconfigRecommendedOKOK
clangRequiredOKOK
cmakeRecommendedOKOK
leiningenRequiredOKOK
Java 8RequiredOKOK
mavenRequiredOKOK
gradleRequiredOKOK
nodejsRequiredOKOK
jshintRecommendedOKOK
pyenvRequiredOKOK
pyenv-doctorRequiredOKOK
pyenv-updateRequiredOKOK
pyenv-virtualenvRequiredOKOK
pyenv-which-extRequiredOKOK
rbenvRequiredOKOK
ruby-buildRequiredOKOK
rbenv-gem-rehashRequiredOKOK
rbenv-default-gemsRequiredOKOK
rbenv-eachRequiredOKOK
rbenv-varsRequiredOKOK
bundlerRequiredOKOK
pryRequiredOKOK
pry-docRequiredOKOK
virtualboxRequiredOKOK
vagrantRequiredOKOK
gitRequiredOKOK
git-extrasRequiredOKOK
tigRequiredOKOK

Let’s go

git clone https://github.com/xiaohanyu/oh-my-laptop
cd oh-my-laptop
# please view oh-my-laptop.yml and enable or disable some modules
$EDITOR oh-my-laptop.yml
ansible-playbook -i localhost -K oh-my-laptop.yml

Reference