A Streamlined Bootstrapper for Save OS X
By Calum MacRae
January 3, 2015
Well this is weird… I'm actually writing a blog post.
Youri and I have been working on Save OS X on and off for quite some time now. It's grown and matured into something we're very proud of, but sadly, we're not the best at advocacy. This is something we'll be working on. I won't be going into detail about the project at large in this post. I wanted to write about a specific script I threw together the other day, and my motives behind writing it.
What the people want!
So far, whilst writing the bootstrap scripts for
Save OS X, I've approached it in
such a way that assumes the user is completely unfamiliar with all the
underlying technologies. The
bootstrap
script, which is intended as the only script the user needs to run, is
completely interactive. It provides some fancy title screens per
section, detailing what that part of the project is, and what it's used
for.
I tried out Homebrew for the first time in a while the other day. It ended in frustration, and actually broke itself - something I wasn't expecting. But, I'm not writing about brew to bash it: I really liked how simple the install was. With the suggestion of piping from curl to ruby (relevant) aside, it was a pleasant set-up, and running in no time. This is something we didn't offer. It was nice, as a user who already knew what it was, and knew what they wanted, to have a hassle free, fast install.
So, I stripped out all the mish-mash of case
statements nested in while
loops
from the bootstrap
script, and
quickstrap
was born. I didn't bother including the functionality of the
x-setup
script, if people want it, they can just run that script on its own :)
Yeah… so?
Well, now you can get secure, 64bit binary package management, with GPG verification, running on OS X in under a minute. I hope that's as nice to other people as it seems to me.
pkgsrc
has been supported on OS X for a very
long time, and pkgin
has always been dead simple
to set up, so this isn't radically new. Though, we are bringing GPG
signed packages to the table, thanks to the excellent work from
@khorben of the
EdgeBSD project, and
Youri's relentless work on the
packages. Along with this, you don't have to worry about setting up OS
X's PATH/MANPATH evaluation, and GPG is handled for you.
A quick demo
I decided to throw a demo up, using showterm.io:
https://showterm.io/a3ccab391e69016360b98
Note: The time for some of the exeutions in this demo are inaccurate - it is, in fact, a faster process from the shell. This is due to the way showterm processes text
Go grab it
You can get the quickstrap
script from my GitHub:
https://github.com/cmacrae/saveosx
So, have at it people. Let us know what you think!
We'll keep you posted!
We're working on various improvements to the project at the moment. We'll be updating http://saveosx.org with a more intuitive & informative layout. Also, Youri's cooking up new packages as I type!