30713 Commits

Author SHA1 Message Date
Ben Alpert
e339a2a73f Add Hardware.is_64_bit? method
Closes Homebrew/homebrew#53
2009-09-24 16:30:26 -06:00
Max Howell
bab6515668 Summarised listings with brew list
I'm trying to only show the interesting stuff. You can see a full listing with
brew -v list, or by piping to other commands.

Tell me if you hate it or love it.
2009-09-24 22:38:42 +01:00
Max Howell
bfb3e1bfe0 brew log command
Shows the git-log for that formula.
2009-09-24 21:09:46 +01:00
Max Howell
a6ba0c4800 Use new instance var syntax for brew create 2009-09-24 18:49:49 +01:00
Max Howell
44a1fa418e Use full paths to all system utilities
Otherwise you run the risk of not running the exact version / make of the utility you planned.

Fixes Homebrew/homebrew#48

Really we need to do this formula too, so I guess a make and cmake function are on the way…
2009-09-24 18:26:24 +01:00
Max Howell
034fc40ae1 Remove Fink and Macports from the PATH earlier
References issue Homebrew/homebrew#48
2009-09-24 18:26:24 +01:00
Clinton R. Nixon
2668e2aeff DRYed up "@foo=self.class.foo unless @foo" statements
Using the example from the existing code:

  CHECKSUM_TYPES.each do |type|
    if !instance_variable_defined?("@#{type}")
      class_value = self.class.send(type)
      instance_variable_set("@#{type}", class_value) if class_value
    end
  end

I extracted that block into a method 'set_instance_variable' which I
then used in all places where this behavior was being used.
2009-09-24 18:26:16 +01:00
Clinton R. Nixon
44a3d59630 Added small DSL for formulas
You can now use "url", "version", "homepage", and any checksums as
class methods, like so:

    class Dos2unix <Formula
      url 'http://www.sfr-fresh.com/linux/misc/old/dos2unix-3.1.tar.gz'
      md5 '25ff56bab202de63ea6f6c211c416e96'
      homepage 'http://www.sfr-fresh.com/linux/misc/'
    end

The previous usage ("@url = 'http://example.com/tarball.tgz'") still
works, maintaining compatibility with previous formulas.

"dos2unix.rb" is translated into the new format as an example.
2009-09-23 14:51:11 -04:00
Max Howell
6f4c61e326 brew install --ignore-dependencies
I used the same option flag as ruby gems does.
2009-09-22 19:58:10 +01:00
Pierre Riteau
c9c7075dc1 Don't print text as columns when the output is not a tty
The code also makes sure to terminate with a newline, unless the
output is empty.
2009-09-22 20:43:06 +02:00
Max Howell
e60ea7bd20 Clean up the empty dir cleaner a little
Using more Pathname methods.

Only show text if verbose mode is on, as is typical for the rest of our install output.

TODO: would be nice if we knew you were a dev and automatically enabled verbose mode perhaps.
2009-09-22 11:38:22 +01:00
Adam Vandenberg
36bb590e82 Rename :libpng to :x11 and alias. 2009-09-21 20:55:41 -07:00
Adam Vandenberg
50b981a469 Replace perl one-liner for removing empty dirs with Ruby.
Allow Formula.skip_clean? to prevent empty folders from being removed
as part of the brewing cleanup process.
2009-09-21 16:12:01 -07:00
Max Howell
3094a162ac Don't always say "Patching" 2009-09-21 23:51:31 +01:00
Max Howell
7f56fe2532 ENV.cc; returns the compiler we use 2009-09-21 23:50:57 +01:00
Max Howell
01b85d8521 Automatically add keg_only? deps to relevent ENV
Eg gettext gets added into LDFLAGS, INCLUDE and that. I hope I got everything
that is typical. Prolly not. But we'll find out.

Made readline keg_only because the BSD version is provided by OS X, and I
don't want bug reports that are tricky to solve due to unexpected differences
between the two.
2009-09-21 20:23:09 +01:00
Max Howell
e9701dbc81 Merge branch 'deps'
Conflicts:
	Library/Formula/imagemagick.rb
	Library/Formula/taglib.rb
	Library/Homebrew/brew.h.rb
	Library/Homebrew/formula.rb
	bin/brew
2009-09-21 18:46:28 +01:00
Max Howell
77dd27e8e6 Dependency resolution with fancy syntax
Is it a DSL? No. But people call it that apparently.

To add a dependency:

class Doe <Formula
  depends_on 'ray'
  depends_on 'mee' => :optional
  depends_on 'far' => :recommended
  depends_on Sew.new
end

Sew would be a formula you have defined in this Formula file. This is useful,
eg. see Python's formula. Formula specified in this fashion cannot be linked
into the HOMEBREW_PREFIX, they are considered private libraries. This allows
you to create custom installations that are very specific to your formula.

More features to come, like specifying versions
2009-09-21 18:27:48 +01:00
Max Howell
3d421c8649 Update references to masterbrew
I left update_from_masterbrew! as a historical reference.
2009-09-18 14:32:21 +01:00
Max Howell
a8d6a695bc mkpath for all directories under lib/perl5
Don't symlink, as multiple formula will install to this directory.
2009-09-17 22:01:27 +01:00
Max Howell
ee2b521ca8 Solving the GNU GetText issues
GNU GetText breaks eg. Ruby 1.9 builds, and some other formula I have been building too. But it is required by eg. glib. So to solve this we are going to by default not symlink gettext into the Homebrew prefix.

Formula that depend on GetText will have the gettext paths added to the brewing environment automatically. Neat.
2009-09-17 22:01:27 +01:00
dbr
944517ddc0 The "brew gen" command doesn't seem to exist, changed to "brew create", which isn't otherwise mentioned 2009-09-17 19:51:48 +01:00
Max Howell
2149d9035a Delete the partial download with any exception
Don't delete it if it doesn't exist.
2009-09-17 18:42:56 +01:00
Max Howell
357751633e Prettier install output
This way caveats and other warnings/errors don't appear connected to the Summary text.
2009-09-17 18:42:56 +01:00
Max Howell
b3c6c3f591 Warning for bin dirs not in the PATH
Eg. sbin may be part of the formula, but that isn't in the default Mac PATH. Also will avoid bug reports for users who forget to amend their PATH and stick Homebrew somewhere different.
2009-09-17 18:42:56 +01:00
Max Howell
9d63bf9e14 Add license header to update.rb 2009-09-17 18:40:21 +01:00
Max Howell
710a160b8f Rename refresh_brew.rb to update.rb
I didn't change the class name, it's clear from the context where it is used what it does. However when just looking at files to figure out the nature of Homebrew I believe in clear naming.

Otherwise funny names earn you points.
2009-09-17 18:39:58 +01:00
Max Howell
cb28a0f477 Error out if a git command fails during update 2009-09-17 18:27:12 +01:00
Eloy Duran
7ebd012128 Made the Library tests green on 10.6.0 2009-09-17 00:24:59 +02:00
Eloy Duran
91736e24cb Changed verbose output of git commands during update to use the existing style. 2009-09-17 00:24:12 +02:00
Eloy Duran
d296038ead Don't break if RubyCocoa can't be loaded, but try to help the user. 2009-09-17 00:24:11 +02:00
Eloy Duran
3b8f3ad409 Made the output of updating a bit nicer and log more if --verbose. 2009-09-17 00:24:11 +02:00
Eloy Duran
bb03db8e6c Before trying to update, first checkout the masterbrew branch. 2009-09-17 00:24:11 +02:00
Eloy Duran
9ff551a524 Removed the old 'update' when clause and fixed a small spelling error. 2009-09-17 00:24:11 +02:00
Eloy Duran
c9f056c327 Make sure git commands in RefreshBrew are executed with the proper working dir. 2009-09-17 00:24:11 +02:00
Eloy Duran
52efea0e7d Added `update' to banner. 2009-09-17 00:24:11 +02:00
Eloy Duran
c1989b79ad Update Homebrew and list the updated formulae. 2009-09-17 00:24:11 +02:00
Max Howell
c71d4ad2bc Default to patch level 1
Having gone through our patches it's clear that p1 is more standard.

Also fixed a bug where returning DATA outside of an array would fail to patch.
2009-09-16 17:08:32 +01:00
Darcy Laycock
8ecb7b0612 Add fish completions for the brew binary
See Library/Contributions
2009-09-16 14:49:06 +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
Max Howell
fd5ed391be Support patching using diffs on local filesystem 2009-09-16 14:49:05 +01:00
Brian Smyth
0a2cdea5fd Teach patch to uncompress patches if necessary.
This change also eliminates the somewhat duplicate codepath if patches
returns and Array rather than a Hash.
2009-09-16 14:49:05 +01:00
Joshua Peek
acd913593a Clear CDPATH to avoid make issues that depend on changing directories 2009-09-14 20:33:47 +01:00
David Höppner
f150e5ece2 Fix unittest test_arch_for_command for 10.5 2009-09-14 20:33:46 +01:00
Clinton R. Nixon
6ee6bee01f Clean up indentation
Signed-off-by: Max Howell <max@methylblue.com>

I didn't commit it all, apologies. But I just can't read the sections nearly as easily if you indent private and protected. If it's a Ruby convention it frankly seems at odds with the rest of Ruby spacing conventions.
2009-09-14 20:33:46 +01:00
Max Howell
3f11c4ab1f Escape $ inreplace 'after' parameter 2009-09-14 20:33:46 +01:00
Clinton R. Nixon
0df406ae4f Ant formula
Ant is a Java-based build tool. In theory, it is kind of like Make, without
Make's wrinkles and with the full portability of pure Java code.
2009-09-14 20:33:46 +01:00
Sean Wolfe
80a54dc5b2 Couchdb and dependency formulae
Signed-off-by: Max Howell <max@methylblue.com>

I squashed a number of commits here, and also replaced the use of nspr.prefix with HOMEBREW_PREFIX as in theory we are flexible with our requirement for dependencies, although with the limited build system that SpiderMonkey possesses this is difficult for us to achieve anyway…
2009-09-14 20:33:46 +01:00
Max Howell
46ac04e410 Formula::var
Points to eg. Cellar/wget/var rather than Cellar/wget/1.1.5/var

Discussion: 1689bbc326f1201ea979178ebcadba344abf2568
2009-09-14 20:33:46 +01:00
Max Howell
f0f59659dd Overriding Object.class was not my intention
Renamed to Formula::class_s.
2009-09-11 17:42:53 +01:00