csaltos / braumeister.org

An online package browser for Homebrew, the OS X package manager.

Home Page:http://braumeister.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

braumeister.org

Build Status Dependency Status Code Climate Test Coverage

Gratipay Beerpay

braumeister.org is a Rails application that gathers package information from Homebrew, the macOS package manager.

Internals

To get information about the packages currently available via Homebrew, the application has its own clone of Homebrew’s Git repositories. Homebrew's raw package files, the so called formulae (or formulas) which are Ruby classes, are used to gather information from the packages.

Because Homebrew isn’t currently optimized for third party access, there is some need to sandbox Homebrew’s code, so we don't mess up with our application's code. This is done by forking another Ruby process and using an IO#pipe for inter-process communication (IPC). The formula data is passed as marshalled Hashes from the indexing process (child) to the main process (parent).

There are other, probably better methods of IPC like shared memory, but piping was easy to implement and proved to be fast enough even for full indexing with several hundred formulae.

Local setup

If you clone the repository from GitHub it’s pretty easy to get started with a working local copy. Run the following commands to run the application locally:

$ ./script/bootstrap
$ rake db:seed
$ foreman start

Contribute

braumeister.org is an open-source project. Therefore you are free to help improving it. There are several ways of contributing to braumeister.org’s development:

  • Use it and spread the word to existing and new Homebrew users
  • Report problems and request features using the issue tracker.
  • Write patches yourself to fix bugs and implement new functionality.
  • Create a fork on GitHub and start hacking. Extra points for using feature branches and GitHub’s pull requests.

About the name

“Braumeister” – [ˈbʁaʊmʌɪstəʀ] – is the German word for “master brewer” or “brewmaster”, the person in charge of beer production.

License

This code is free software; you can redistribute it and/or modify it under the terms of the new BSD License. A copy of this license can be found in the LICENSE file.

Credits

  • Sebastian Staudt – koraktor(at)gmail.com
  • Andrey Ognevsky – a.ognevsky(at)gmail.com
  • Michiel Staessen – staessenmichiel(at)gmail.com
  • Mike McQuaid – mike(at)mikemcquaid.com

See also

Follow braumeister.org on Twitter @braumeister_org.

About

An online package browser for Homebrew, the OS X package manager.

http://braumeister.org

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Ruby 75.4%Language:HTML 13.6%Language:CSS 9.7%Language:JavaScript 0.9%Language:Shell 0.4%