aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/utils.rb
AgeCommit message (Collapse)Author
2011-03-12MacOS.xcode_prefixMax Howell
More robust code than before, and replaces all usage of `xcode-select -print-path`.
2011-03-12Don't open editor if no args passedMax Howell
2011-03-12Some CleanupMax Howell
2011-03-12Move string extensionsAdam Vandenberg
2011-03-12Refactor the brew command into one file per commandMax Howell
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.
2010-11-26Use full path to curl in utils.rbAdam Vandenberg
2010-10-30fix warnings: ambiguous splatJamie Macey
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-10-30fix warnings: splat is redundant for putsJamie Macey
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-19Let the `gzip` utility function accept multiple paths.Martin Kühl
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-06Use 'realpath'Adam Vandenberg
2010-08-20Let 'interactive_shell' take a formula and set ENV vars.Adam Vandenberg
Pull duplicate code out of install --debug and install -i up into 'interactive_shell'.
2010-08-09brew doctor - X11 checkAdam Vandenberg
Tweak wording in X11 check and use the same X11 detection function as ENV.x11; also move that function into utils.
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 #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 #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 #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 #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.