aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/utils.rb
AgeCommit message (Collapse)Author
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.
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 #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 #40
2009-09-05Fix double newline after InterruptMax Howell
Seems to be an issue with Ruby system() call doing a double fork.
2009-09-05Use ENV[EDITOR] if possiblescoates
Defaulting to EDITOR, then checking for the mate command, and then using vim as a last resort. Signed Off By: Max Howell <max@methylblue.com> Plain brew edit still uses Textmate though because a client that supported a project concept is required for that particular feature. Patches for that welcome.
2009-09-05`brew search' commandAndre Arko
Example usage: brew search w # formulae containing w brew search ^w # formulae starting with w No parameters lists all packages. Also adds puts_columns to util, and uses it for output. Signed Off By: Max Howell <max@methylblue.com> I changed the command from 'available' to search because this is more similar to how other tools call this function. The short form is -S, which is the "pacman" tool equivalent.
2009-09-05Don't trim ohai message in verbose modeMax Howell
2009-09-05watch_out_for_spillEloy Duran
New method which uses RubyCocoa with the FSEvents API from Rucola to watch if files aren't installed outside the Homebrew prefix. Right now the paths being watched are: /System, /usr, /etc, /sbin, /bin, and /Applications.
2009-09-03Closes #27 (permissions to strict)Max Howell
I went with 0555 as the permissions changing only occurs to bin, sbin and lib, so there shouldn't be any files in there for editing in general anyway. Formulae can specify not to "clean" any particular file by reimplementing the skip_clean? function, in case some config file or what not ends up in there. Also committing cosmetic fix to pretty_duration function.
2009-08-31docs is an alias for doc sometimes apparentlyMax Howell
We don't install documentation to save space. It seems pointless in this modern age where the online docs are probably more up to date. However I do believe this should be an option, defaulting to "don't install".
2009-08-31Change license to BSDMax Howell
I confirmed this change with all relevant contributors first.
2009-08-24Raise a SystemExit exception to prevent backtraceMax Howell
2009-08-24Factor out downloading from FormulaAdam Vandenberg
This patch adds a ArchiveDownloadStrategy that handles downloading tarbarlls and decompressing them into the staging area ready for brewing. Refactored safe_system and curl into utils.rb Signed-off-by: Max Howell <max@methylblue.com> Modifications to Adam's original patch: I reverted objectification of checksum verification because I couldn't think of any other download validation methods that might be useful to us in the future, so allowing such flexibility had no advantages. If we ever need this to be OO we can add it. But for now less complexity is preferable. I removed the @svnurl class member. Instead download_strategy is autodetected by examining the url. The user can override the download_strategy in case this fails. Thus we already can easily add support for clones of git repositories.
2009-08-10ohai takes multiple parametersMax Howell
Will not show any of the block if the 1st additional parameter is nil