167 Commits

Author SHA1 Message Date
Martin Kühl
730cd0e6fe Let the gzip utility function accept multiple paths.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-19 11:11:56 -07:00
Adam Vandenberg
56a4342eeb Use 'realpath' 2010-09-06 09:30:23 -07:00
Adam Vandenberg
c1e293f5a4 Let 'interactive_shell' take a formula and set ENV vars.
Pull duplicate code out of install --debug and install -i up into
'interactive_shell'.
2010-08-20 10:03:44 -07:00
Adam Vandenberg
6c23f9b324 brew doctor - X11 check
Tweak wording in X11 check and use the same X11 detection function
as ENV.x11; also move that function into utils.
2010-08-09 19:13:07 -07:00
James Harris
07ce6d6e16 archs_for_command now follows symlinks.
Tell file(1) to follow symlinks using the -L option.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-08-02 12:49:20 -07:00
Adam Vandenberg
16bc177a4a Allow HOMEBREW_EDITOR for non-project editing.
If set, use "HOMEBREW_EDITOR" when editing a single file, or multiple
files in the same folder.

Note that this setting does not affect `brew edit`, since opening
all of Homebrew at once requires an editor with proper project support.
2010-07-25 10:58:00 -07:00
Adam Vandenberg
ee794cd21a Add command "brew --env"
"brew --env" will set up a build environment and then dump certain ENV
variables (CC, CXX, LD, CFLAGS, CXXFLAGS, MAKEFLAGS).

If any of CC, CXX, LD are symlinks, now also output the target compiler.
(Typically these will be symlinks from eg /usr/bin/cc to /usr/bin/gcc-4.2).

This is a diagnostic command which may be merged into --config, turned
into an external command, or removed if it doesn't turn out to be useful.
2010-07-13 14:20:52 -07:00
Adam Vandenberg
4c2d3e1f7f Improved Subversion support.
Homebrew will now use the svn binary pointed to by HOMEBREW_SVN if set,
use a Homebrew-installed svn if present, finally falling back to the
system-provided svn binary.

If a formula (mplayer) requires a newer version of Subversion than what
Leopard provides, it can use the "StrictSubversionDownloadStrategy"
download strategy to warn the user.

These changes also fix an issue with forcing exports not working on a
stock Leopard subversion, but letting the user either specify a specific
binary or install Subversion via Homebrew and pick that up instead.
2010-07-08 22:45:03 -07:00
Adam Vandenberg
281768cc07 Add some HOMEBREW env vars to the dump 2010-07-08 22:45:01 -07:00
Adam Vandenberg
696e49e87a Move exceptions from global to utils; remove duplicate defintions 2010-07-08 22:41:51 -07:00
Adam Vandenberg
ecb5ce103e Remove $PATH from --config and build dumps.
While it is useful to be able to see the user's path in bug reports, it is
perhaps slightly too intrusive to post this without the user's permission.

A path can have usernames or other project sensitive information, and several
Homebrew users were editing their bug reports to omit this information.

`brew doctor` will still report on the path issues that we typically care
about, so dropping automatic posting of PATH.
2010-07-02 09:34:40 -07:00
Adam Vandenberg
8af39f115c Set HOMEBREW_DEBUG_INSTALL when in a shell during install -d|-i
When an "install -d formula" fails, and the user gets dropped into an
interactive shell, set the HOMEBREW_DEBUG_INSTALL env var to the name
for the formula that failed. Also set variable if the user requests an
interactive install in the first place.

Note that this may be different than the formula being installed, since
it may have been a dep that failed.

Also remove todo in utils; users can now look for HOMEBREW_DEBUG_INSTALL
in their prompt command, and adjust their prompts accordingly.
2010-06-15 08:09:58 -07:00
Adam Vandenberg
5f4871ba9d Improve archs_for_command
* Work on commands or dylibs
* Use an extension for the list of arches
2010-05-10 20:40:16 -07:00
Adam Vandenberg
9ba8d5ede8 Move dump_build_env to utils and use during installs too. 2010-05-06 07:23:59 -07:00
Adam Vandenberg
3103ff4b9c Make mod_wsgi and mod_python arch code more similar. 2010-04-12 11:22:47 -07:00
Adam Vandenberg
e1c9e24920 Add s.get_make_var
This allows more complicated transformations to happen,
such as stripping out part of the variable.
2010-04-03 17:54:49 -07:00
Adam Vandenberg
e7d7ceccee Allow archs_for_command to take Pathnames. Fixes Homebrew/homebrew#1106. 2010-04-03 11:51:46 -07:00
Adam Vandenberg
098b97801b Use tab/space when finding vars (and not newlines). 2010-03-16 12:00:00 -07:00
Martin Kühl
d03411775f Fix change_make_var! for empty variables.
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-03-16 11:54:09 -07:00
Eero Saynatkari
f56e96dfff 1.9 fix, String is not an Enumerable.
* Removed use of String altogether since all use cases
  are Arrays currently. YAGNI.

* #max_by would have been more elegant, but this way we
  can support 1.8.6.

Signed-off-by: Max Howell <max@methylblue.com>

I made the diff less gratuitous. Don't bloat diffs to meet personal coding style preferences :P

Closes Homebrew/homebrew#896
2010-03-13 14:36:47 +00:00
Adam Vandenberg
a9b19f0255 Move license block to separate LICENSE file. 2010-03-01 11:41:24 -08:00
Max Howell
15e145709b Fix inreplace barfing over Pathnames
This fix should be fairly tolerant of types.
2010-02-20 02:07:51 +00:00
Max Howell
b48d46d4bc Allow inreplace to operate over arrays
I like that String.each is interchangeable with Array.each :)
2010-02-19 17:34:40 +00:00
Adam Vandenberg
6671d6275d remove_make_var! should not leave an empty assignment 2010-02-09 09:21:25 -08:00
Adam Vandenberg
5474cf1a95 Let change_make_var! append to existing value.
To existing flag value can be specified with "\\1".
To append values to a flag, call with:
    s.change_make_var! "THE_FLAG", "\\1 more-flag-values"

The same trick can be used to prepend or surround values as well.
2010-02-02 08:57:56 -08:00
Adam Vandenberg
fb8707df4e Remove spaces around make-style variables.
Removing the spaces around equals for make-style variables makes
the change_make_var! method compatible with shell scripts as well
as makefiles.
2010-01-30 22:48:44 -08:00
Adam Vandenberg
f9a0f3e80f Add gzip utility function. 2010-01-30 10:39:56 -08:00
Max Howell
d1355af66e Check for bad values of console_width
Fixes Homebrew/homebrew#453.
2010-01-16 13:12:38 +00:00
Max Howell
df79d74e13 Add quiet_system
Same as Kernel.system, but prints no output.
2010-01-13 11:23:15 +00:00
Adam Vandenberg
446be8cdd7 Add Makefile var and multi-replace support inreplace. 2010-01-13 11:23:07 +00:00
Max Howell
5bcffbb5e3 Escape spaces for archs_for_command
Use inject for concision.

Rename to archs from arch as it returns an array.
2010-01-13 11:16:24 +00:00
Adam Vandenberg
f533224427 If there is no output, don't find longest length. 2009-12-20 12:56:47 +00:00
Kieran Pilkington
85ffad8117 Making column amount and width dynamic, adjusting to console size. 2009-12-17 19:19:33 +00:00
Max Howell
ba1c0af94c Apparently the map didn't work on Leopard 2009-12-04 18:16:32 +00:00
Manfred Stienstra
5ff55b1739 Cast all arguments for Kernel#exec to string.
In the FFMPEG formula the revision number is represented as an integer,
this ends up as an argument to Kernel#exec and it doesn't really like
that. The fix is to cast all arguments to a string.

Fixes Homebrew/homebrew#171.
2009-12-04 14:16:45 +00:00
Max Howell
4bd32c615e Fix system() exception showing regression
Rather than showing a backtrace that says "couldn't find command blah". Admittedly it's possible that the error will be something else, but unlikely. And this is neater.

Ideally we'd push the bt through an error pipe like we do with install.rb. And I guess we'll do this eventually.
2009-11-11 19:42:35 +00:00
Max Howell
45a1a2ba3c Tty.em; bold white underlined 2009-11-11 18:36:50 +00:00
Max Howell
04f3ddeac0 Ignore stdout during GitDownloadStrategy.stage 2009-11-09 18:24:36 +00:00
Max Howell
1da26d89ea Don't use Kernel.system much
It just seems to behave strangely with SIGINT. Eg. SIGINT causes tar to exit, but the SIGINT is ignored by our process. This is not the case when used with curl.
2009-11-09 17:55:11 +00:00
Max Howell
22afc5e1c7 Use our own popen implementation in Formula.system
The rationale here is that the --verbose mode had a bug where it didn't escape its parameters properly. Which caused ocassionally cryptic issues.
2009-11-08 15:21:09 +00:00
Max Howell
1e879eaee8 Propagate exit status in ExecutioError exception 2009-11-07 18:22:36 +00:00
Max Howell
e289164adc Implement inreplace natively in Ruby
I found yet another instance where the escaping wasn't perfect, so got fed up and just did it in Ruby. I hope this works for all existing usage. It should.

The bonus here is that you can use RegExps now.
2009-10-23 19:22:51 +01:00
Max Howell
e1995d60ef Call to_s on ohai parameters 2009-10-23 19:22:51 +01:00
Max Howell
8eb97a7db5 Put colors in Tty class
Changed format of Errors and Warnings slightly.
2009-10-15 16:51:58 +01: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
Max Howell
5c33fdfb5b If an exception has newlines, render them well 2009-10-01 15:48:51 +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
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
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
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