232 Commits

Author SHA1 Message Date
Max Howell
768910283a Refactor the brew command into one file per command
The code was sucking. To the extent that maintenance was hard. It's a lot
easier to work with code that is sensibly split at sensible boundaries. So
now it is more like that.

But the refactor is minimal. Because we don't want you to have more merge
hell than absolutely necessary.

If you merge you will need to pay attention to brew.h.rb (as it is deleted)
and bin/brew (as command logic is gone). It will be painful, but you will just
have to help git out by moving any changes around manually.

Note compatibility.rb. It ensures that any function renames or removals don't
break anything. We're pretty serious about backwards compatibility. And that's
because we encourage you to hack around with the innards. And we couldn't do
that if we would then just make stuff disappear behind your back.
2011-03-12 11:55:02 -08:00
Adam Vandenberg
b6332de28d Bump Homebrew to 0.7.1
The Homebrew version number is mainly useful for bug reports. Since it is
included in "brew --config" output, it is an easy way to see roughly how
new the a user's version of Homebrew is.

Bumping the micro version now, in anticipation of some more version-changing
events in the near future.
2010-10-31 17:23:20 -07:00
Adam Vandenberg
2bb9fa1b22 Bump Xcode recommendation to 3.2.3 2010-09-07 13:23:43 -07:00
Adam Vandenberg
6b32dfe8de Homebrew now at version 0.7
Changes in this version include:
* Aliases are now defined by relative symlinks rather than in the
  formulae themselves. Many commands are faster now that they don't
  have to read every formula to find aliases.

* "url" now supports the same features as "head", including ":using"
  and version specifiers for VCS systems.

* Files and methods marked for deprecation in 0.7 have been removed.

* The Formula DSL now supports "skip_clean :all" and "keg_only 'reason'"
2010-08-07 18:08:54 -07:00
Adam Vandenberg
b355d6af25 Bump Xcode recommendation to 3.2.2 2010-07-21 09:45:31 -07:00
Adam Vandenberg
41e8245534 Clarify cellar comment 2010-07-08 22:41:51 -07:00
Adam Vandenberg
696e49e87a Move exceptions from global to utils; remove duplicate defintions 2010-07-08 22:41:51 -07:00
Adam Vandenberg
eb058c0958 Fix: attr doesn't take a list. 2010-06-10 19:39:15 -07:00
Adam Vandenberg
1761ba66bf Failures during ./configure should mention config.log. 2010-06-10 12:57:51 -07:00
Adam Vandenberg
ec926a7f5f Change homepage. Fixes Homebrew/homebrew#105. 2010-04-06 08:29:33 -07:00
Adam Vandenberg
3825535310 Move recommended compiler versions into constants. 2010-03-16 20:58:12 -07:00
Adam Vandenberg
485d480722 Add a snapshot of ENV to BuildError and show some flags with the stack trace. 2010-03-11 15:58:17 -08:00
Adam Vandenberg
cb6449c2d9 Homebrew is now at version 0.6
We've bumped the version number, as Homebrew no longer tries to use LLVM
by default (on Snow Leopard.)
2010-03-08 15:55:30 -08:00
Max Howell
799dd7108e String.undent for prettier HEREDOCs 2010-03-07 17:57:05 +00:00
Adam Vandenberg
a9b19f0255 Move license block to separate LICENSE file. 2010-03-01 11:41:24 -08:00
Max Howell
8a1b17e04b Stop raising during the raise ctor 2010-01-16 20:25:50 +00:00
Max Howell
0a27f041d0 Print quotes around executed arguments with spaces
Eg: ['foo', 'bar la'] -> "foo 'bar la'"
2010-01-13 11:23:15 +00:00
Adam Vandenberg
47a38f49f1 Fix HOMEBREW_BREW_FILE for unit tests. 2009-11-18 15:39:51 -08:00
Max Howell
8c21cd4c64 It's about time we bumped the version eh? 2009-11-11 18:43:03 +00:00
Max Howell
86516e563f Set ENV[HOMEBREW_BREW_FILE]
Thus install.rb gets the path to the instantiating brew process rather than whichever is first in the PATH. Not to mention Homebrew doesn't *have* to be in the PATH.
2009-11-08 15:21:14 +00:00
Max Howell
6b18d5572d Rename BREW_FILE HOMEBREW_BREW_FILE
Because it's a global.h constant and that file can be included by other projects.
2009-11-08 15:21:14 +00:00
Max Howell
1e879eaee8 Propagate exit status in ExecutioError exception 2009-11-07 18:22:36 +00:00
Max Howell
a4e86bb326 Move BuildError and ExceutionError to global.h
More sensible, and fixes brew
2009-11-07 18:22:35 +00:00
Max Howell
c5eb65332d Don't require hardware.rb globally 2009-11-07 18:22:33 +00:00
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