108 Commits

Author SHA1 Message Date
Adam Vandenberg
c76d652da2 Tweak code to locate Cellar path.
I think this tweak to finding the Cellar path addresses one of mxcl's
concerns over supported install scenarios.
2009-11-04 16:27:36 +00:00
Adam Vandenberg
3087888fb0 Rewrite of HOMEBREW_ folder locations
This rewrite attempts to sort out where the Prefix, Cellar, and
Repository are relative to the real and symlinked 'brew' command.

Also included is a --config option which dumps all of these variables.

Any top-level script must define a "BREW_FILE" that gives the path
to brew as it exists in the path. 'brew' itself just uses __FILE__ and
install.rb does a `which brew` (there may be a better way?)

The Prefix is always relative to the location of brew as it exists in
the path. Thus, whether or not /usr/local/bin/brew is a symlink or real
file, the Prefix is always /usr/local. If you have brew in some other
prefix, such as /nonstandard/bin/brew, then '/nonstandard/ will be
managed by brew instead.

The Repository, Cellar, and "Library/Homebrew" required code is always
found relative to the "real" path or brew. If brew is a real file in
/usr/local/bin/brew, then everything else will be found in /usr/local
and we'll expect a /usr/local/.git

Otherwise, we dereference brew's symlink and look for everything else
relative to that path instead.
2009-11-04 16:27:34 +00:00
Max Howell
543a113712 Some subdirs and renames to aid homebrew n00bs
The classes better reflect their contents. I'm sure this change may be
contentious, but I am a sucker for trying to create source bases that are easy
to get to grips with and easy to navigate.

brewkit.rb is now a deprecated file.
2009-10-15 16:51:53 +01:00
Steve Losh
287cc0dc02 Determine the repo path in a symlink-friendly way.
The Contributions/selflink.sh script does not symlink the .git directory,
so 'brew update' will fail because the prefix (/usr/local/) is not a git
repository.

To determine the actual location of the git repo we can get the realpath
of the Library (to expand any symlinks) and take the parent of that.
2009-09-30 15:07:23 +01:00
Max Howell
55025865eb Fixes Homebrew/homebrew#68, let's not break fresh Homebrew installs
Thanks to boztek for spotting this. I'll commit a test shortly.
2009-09-30 03:10:25 +01:00
Andre Arko
d3954d3d77 Add HOMEBREW_REPOSITORY prefix for brew up
Signed-off-by: Max Howell <max@methylblue.com>

I removed whitespace changes and changed readlink to realpath as readlink raises if it's not a link.
2009-09-29 23:34:16 +01:00
Piotr Usewicz
4ed3834be0 Add full version and build numbers to user agent
Signed-off-by: Max Howell <max@methylblue.com>

I adapted it slightly based on the user agent that Safari gives.
2009-09-25 01:24:05 +01:00
Max Howell
c28bd7b571 Allow formulae to use __END__
For this to work the "running script" must be the formulae file. Making this
so wasn't so hard, there is now an install.rb script which is included with
the -r flag to the ruby executable. An at_exit handler calls the install
function.

Having the install logic in its own file made it feel like there was so much
space that I added extra error handling. So there is something to be said for
separating functionality out into its own files.

Still the error handling sucks, we'll need to marshall the exception back to
the bin/brew command. Which is another PITA.

Still overall I think this will prove worthwhile. But if it doesn't we'll
revert.

As a first usage, you can put a diff after __END__ and return DATA from
Formula::patches to make Homebrew aware of it.
2009-09-16 14:49:06 +01:00