Sinatra front end for the homebrew package management system
If you watch, please read:
Anyone want to make a MacRuby version of this (w/ a Cocoa Interface?)
@flangy suggested a ncurses version.
homebrew is a pretty awesome command line client.
I had my doubts at first, but I have come to realize that it is far and away
the best package manager for OSX I have used.
Not everyone is comfortable with the command line though 😦
I’m friendly. This doesn’t involve money.
Let’s just make something that makes other people’s lives easier.
Msg me on github or follow me on twitter - @melgray
This started off as an attempt of creating a small website for homebrew for people to search for available packages.
I kinda hacked together a really janky web front end for the package manager.
Since homebrew is git based, it has the potential for being a really cool distributed package manager.
Requirements:
homebrew
Rubygems (1.3.5+)
Bundler
TokyoCabinet
TokyoCabinet Ruby Bindings (1.2.9) [http://gemcutter.org/gems/tokyocabinet]
Sinatra
Grit
yajl-ruby
If you have bundler, you only have to worry about having TokyoCabinet.
To get started quickly, install homebrew and then:
git clone git://github.com/melito/homebrew-web.git
gem bundle
rake bootstrap
Running rake bootstrap
will do the following:
Get a list of all homebrew network members
Add each of those remembers as a remote in your homebrew install
Fetch (non-destructive) each of those remotes
Index all of the remotes blobs & branches in a tokyocabinet bdb
Once you’ve been ‘bootstrapped’ just run:
ruby app.rb && open http://0.0.0.0:4567
Then just start typing a package name in the ‘Search’ box and a list of results should come up.
The interface is very minimal and not nice atm.
Design contributions / ideas / criticism is welcome.
If you find this useful or like the idea of this, please contribute.
~/workspace/homebrew-web/ rake -T
(in /Users/melgray/workspace/homebrew-web)
rake bootstrap # Use this to setup everything up and get going
rake db:build # Builds a TokyoCabinet BDB database to help search the git repo faster
rake homebrew:location # Prints location where homebrew is installed
rake network:ls # Prints out all members in the homebrew network
rake network:remotes:add[user] # Add a user from the network as a remote (ex: rake network:remotes:add[mxcl])
rake network:remotes:add_all # Add all users from network as remotes and fetch (non-destructive)
rake network:remotes:fetch # Fetches (non-destructive) from all your remotes.
rake network:remotes:ls # List all remotes for your homebrew installation
rake network:remotes:remove_all # Remove all remotes (except origin) from your homebrew install