aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/utils.rb
AgeCommit message (Collapse)Author
2010-08-02archs_for_command now follows symlinks.James Harris
Tell file(1) to follow symlinks using the -L option. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-07-25Allow HOMEBREW_EDITOR for non-project editing.Adam Vandenberg
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-13Add command "brew --env"Adam Vandenberg
"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-08Improved Subversion support.Adam Vandenberg
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-08Add some HOMEBREW env vars to the dumpAdam Vandenberg
2010-07-08Move exceptions from global to utils; remove duplicate defintionsAdam Vandenberg
2010-07-02Remove $PATH from --config and build dumps.Adam Vandenberg
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-06-15Set HOMEBREW_DEBUG_INSTALL when in a shell during install -d|-iAdam Vandenberg
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-05-10Improve archs_for_commandAdam Vandenberg
* Work on commands or dylibs * Use an extension for the list of arches
2010-05-06Move dump_build_env to utils and use during installs too.Adam Vandenberg
2010-04-12Make mod_wsgi and mod_python arch code more similar.Adam Vandenberg
2010-04-03Add s.get_make_varAdam Vandenberg
This allows more complicated transformations to happen, such as stripping out part of the variable.
2010-04-03Allow archs_for_command to take Pathnames. Fixes Homebrew/homebrew#1106.Adam Vandenberg
2010-03-16Use tab/space when finding vars (and not newlines).Adam Vandenberg
2010-03-16Fix `change_make_var!` for empty variables.Martin Kühl
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-03-131.9 fix, String is not an Enumerable.Eero Saynatkari
* 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-01Move license block to separate LICENSE file.Adam Vandenberg
2010-02-20Fix inreplace barfing over PathnamesMax Howell
This fix should be fairly tolerant of types.
2010-02-19Allow inreplace to operate over arraysMax Howell
I like that String.each is interchangeable with Array.each :)
2010-02-09remove_make_var! should not leave an empty assignmentAdam Vandenberg
2010-02-02Let change_make_var! append to existing value.Adam Vandenberg
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-01-30Remove spaces around make-style variables.Adam Vandenberg
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-30Add gzip utility function.Adam Vandenberg
2010-01-16Check for bad values of console_widthMax Howell
Fixes Homebrew/homebrew#453.
2010-01-13Add quiet_systemMax Howell
Same as Kernel.system, but prints no output.
2010-01-13Add Makefile var and multi-replace support inreplace.Adam Vandenberg
2010-01-13Escape spaces for archs_for_commandMax Howell
Use inject for concision. Rename to archs from arch as it returns an array.
2009-12-20If there is no output, don't find longest length.Adam Vandenberg
2009-12-17Making column amount and width dynamic, adjusting to console size.Kieran Pilkington
2009-12-04Apparently the map didn't work on LeopardMax Howell
2009-12-04Cast all arguments for Kernel#exec to string.Manfred Stienstra
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-11-11Fix system() exception showing regressionMax Howell
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-11Tty.em; bold white underlinedMax Howell
2009-11-09Ignore stdout during GitDownloadStrategy.stageMax Howell
2009-11-09Don't use Kernel.system muchMax Howell
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-08Use our own popen implementation in Formula.systemMax Howell
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-07Propagate exit status in ExecutioError exceptionMax Howell
2009-10-23Implement inreplace natively in RubyMax Howell
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-23Call to_s on ohai parametersMax Howell
2009-10-15Put colors in Tty classMax Howell
Changed format of Errors and Warnings slightly.
2009-10-15Some subdirs and renames to aid homebrew n00bsMax Howell
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-01If an exception has newlines, render them wellMax Howell
2009-09-24Use full paths to all system utilitiesMax Howell
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-22Don't print text as columns when the output is not a ttyPierre Riteau
The code also makes sure to terminate with a newline, unless the output is empty.
2009-09-17Prettier install outputMax Howell
This way caveats and other warnings/errors don't appear connected to the Summary text.
2009-09-16Allow formulae to use __END__Max Howell
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-10Function to return a binary's Mach-O architecturesAdam Vandenberg
Added a utility method to get an array of architecture names for a given executable. This will be useful for, say, figuring out what Python was compiled for, to know what to compile a C-based module as. Signed Off By: Max Howell <max@methylblue.com> I added a test and made the function use `which` if the path provided is not absolute. I considered allowing relative paths, but then it is possible for the function to take eg. the svn binary from the current directory when you meant the one in the path, and that could be a confusing bug.
2009-09-10Display exit code when nonzero.Adam Vandenberg
Brew fails if a tool (make, or whatever) doesn't return an exit code of 0. This patch displays the non-zero code on failure, so we can better diagnose what caused the build to fail (or if we need to add that exit code as exception 'success code'.)
2009-09-10Handle $EDITOR with spacesMax Howell
Fixes Homebrew/homebrew#40
2009-09-05Fix double newline after InterruptMax Howell
Seems to be an issue with Ruby system() call doing a double fork.