Eg /usr/local/lib/juice/foo points somewhere else where the user has modules that he wants juice to use.
Basically don't error out for stuff that isn't ours.
The code in Keg.self.for path uses "path = path.parent.realpath" to walk
up subfolders looking for a Keg.
Because 'realpath' is in there, and the path is checked against
HOMEBREW_CELLAR, which may be a symlink, we need to do realpath-to-realpath
comparisons in Keg. Otherwise, we will hit equivalent but symlinked folders,
not see that they are the same, and walk all the way up to / and then
error out.
During the link step, if the destination symlink already exists, unlink it, and create a directory instead, then relink the original contents. Then continue linking the formula in question.
FixesHomebrew/homebrew#62
Because we modified the ENV global each install this propagated to consecutive
formulae. So exec a new brew process each install. This is the safest way
although Ruby exceptions don't propagate to the parent process so I worry
about it somewhat.
Large refactor to Formula, mostly improving reliability and error handling but
also layout and readability.
General improvements so testing can be more complete.
Patches are automatically downloaded and applied for Formula that return a
list of urls from Formula::patches.
Split out the brew command logic to facilitate testing.
Facility from Adam Vandenberg to allow selective cleaning of files, added
because Python doesn't work when stripped.