osxc

simple configuration tool for os x

osxc

osxc installs software on your mac and configures it automatically, just by writing a few lines of code.

---
# my mac:
roles:
  - role: dashboard
    disabled: YES
  - role: brew_package
    package_name: node
  - role: cask_package
    package_name: minecraft

lost everything on your hard drive?
osxc got your back, don't waste your time reinstalling your dev environment.

want to experiment new configuration?
just try it, your configuration repository is versioned.

osxc is still young and has not been tested intensively for now.
just be careful when you use it on your existing environment!

of course, if your os x starts fresh, go on! try it and enjoy!

install & use

1

fork xc-custom

xc-custom will be your main configuration repository, unless you want to change a fundamental behavior in osxc, you'll always change xc-custom.

fork it!

2

bootstrap osxc

xc-boot is a very simple script to get you started with osxc.

for now, as the software is not really stable, and especially this script, you should do the following:

git clone https://github.com/osxc/xc-boot.git ~/src/github.com/osxc/xc-boot
cd ~/src/github.com/osxc/xc-boot
sh boot.sh github.com/{your github username}/xc-custom
3

run ansible

we don't want to hide ansible so it will be very straightforward if you already know ansible

cd ~/src/github.com/{your github username}/xc-custom
ansible-playbook all.yml -K
4

edit your xc-custom

we just installed a few things for you, but now it's time to get your hands dirty!

don't worry, for most of the things you'll want to do, you'll just need to add a few lines in all.yml

5

repeat

never "drag to install" anymore or forget your software configuration.

just repeat steps 4 and 3.

how it works

ansible powered

osxc is an ansible-based set of tools.

if you know bash, you already know ansible! unlike chef or puppet, ansible's language, the playbooks are really easy to learn.

we just provide you a set of tools targeted for os x on top of ansible to get started more easily.

just a set of roles

osxc is mainly a set of playbook roles made for os x configuration

it handles for example:

a structure made to help you

osxc is opiniated on the way you should work

first, osxc wants to be accessible on your home directory so you can tweak it:

~/src/github.com/osxc/

then, osxc wants almost everything to be accessible through git:

~/src/github.com/mxcl/homebrew/

of course, you should do like him!

~/src/github.com/{your github username}/

hack

make osxc work for you

as said before, just start with simple tricks in all.yml (see my custom all.yml)

then, when you understand how ansible works, you'll be able to create new roles just for you! (see my custom roles)

contribute to the common osxc tools

you can contribute your best roles by submitting a pull-request to xc-common

feel free to submit an issue when anything goes wrong!

created by rricard, under mit licence

osxc on github