aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/utils.rb
AgeCommit message (Collapse)Author
2012-07-30Invoke non interactive shell from brew editDean Smith
Fixes Homebrew/homebrew#12779. Closes Homebrew/homebrew#12784. utils.rb invokes bash as a non interactive shell to run the editor when you run brew edit. Non-interactive shells are not intended to capture user input and for running scripts. Whilst the invocation of the editor is a script the actual editor is intended for accept user input so this is an issue with brew and not emacs. This causes issues with emacs which has different behaviors when not running under an interactive shell. Signed-off-by: Max Howell <mxcl@me.com>
2012-07-09quiet_system: Dump to /dev/null instead of closingCharlie Sharpsteen
Some programs fail where they would otherwise succeed if stdout or stderr is closed. For example, using mpicc from the mpich2 formula: quiet_system 'mpicc', '--version' Fails with: LLVM ERROR: IO failure on output stream. While system 'mpicc', '--version' Succeeds. Closes Homebrew/homebrew#13253. Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
2012-06-27Extract MacOS module to separate fileAdam Vandenberg
2012-06-27Refactor MacOS.Adam Vandenberg
* call `xcode-select` once and cache the result * reuse functions where appropriate
2012-06-27remove confusing commentsAdam Vandenberg
2012-06-27Fix Homebrew/homebrew#13012 properly and don't set the SDK if CLTsamueljohn
Undoing parts of the hot fix 78b9e8548e771a59e382e6f13339664ec5498391. The only thing missing was to check for `system "/usr/bin/xcrun -find make 1>/dev/null 2>&1"` and then it's safe to call locate. This commit restores the original functionality but without the risk for recursion and improves the logic of `MacOS.locate`. See below. To important changes in this commit: - For Xcode _and_ CLT: don't add the SDK and leave things as before. So if `MacOS.clt_installed?`, then no `SDKROOT` and `-L` and `-I` directories are set in `ENV.macosxsdk`. - Improved the logic for `MacOS.locate` for Xcode-only situations by assuring that the xcode-select path is correct. This is done by checking that `bin/make` exists and is executable. Otherwise it was possible to set xcode-select to an empty dir. This check is done in `MacOS.sdk_path` too. We are now able to use Xcode wherever it is and can work even, if xcode-select is set to invalid values. (Remember some users don't have sudo access and that is needed to fix xcode-select). Some minor whitespace fixes. Minor backtick fix in doctor.rb's printout. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-06-25MacOS.sdk_path: silence stderr from xcode-selectMisty De Meo
2012-06-25MacOS.sdk_path: use strip instead of chomp.chompMisty De Meo
2012-06-25MacOS.sdk_path: make sure xcode-select is saneMisty De Meo
According to a user on IRC with a brand-new Mac, xcode-select is preconfigured to /Developer out of the box even though that doesn't exist on modern Xcode. So we shouldn't trust that it makes any sense.
2012-06-25MacOS.sdk_path: chomp harder!Misty De Meo
There were two newlines being returned by the command being called in sdk_path, not just one.
2012-06-25Hotfix for stack overflowMisty De Meo
Under certain circumstances, MacOS.locate and MacOS.dev_tools_path would call each other recursively. This was limited to systems with Xcode minus the CLT. See Homebrew/homebrew#13012.
2012-06-25StandardCompilers: add Xcode 4.3.3Misty De Meo
2012-06-24Core change: XCode only install, with CLT or bothsamueljohn
Allow XCode without the Command Line Tools to work with homebrew, so it's not necessary to register an Apple Dev ID and/or go to the XCode prefs and download the CLT. Yay! Further, this commit allows to use the CLT solely (without the need for XCode). Saves quite some megs. (Some furmulae require xcodebuild) Of course XCode together with the CLT is still fine and has been tested on 10.7 and 10.6 with Xcode 4 and Xcode 3. Only on Lion or above, tell the user about the options, which are - Xcode without CLT - CLT without Xcode - both (ok, it's not directly stated, but implicit) So if no Xcode is found and we are on Lion or above, we don't fail but check for the CLTs now. For older Macs, the old message that Xcode is needed and the installer should be run is still displayed. If the CLT are not found but Xcode is, then we print out about the experimental status of this setup. Closes Homebrew/homebrew#10510. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-06-12Switch to "legacy" GitHub search APIJack Nagel
GitHub's v2 API entry point is gone, but search as been ported to API v3 as a "legacy" feature. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-05-30archs_for_command: use new Mach-O Pathname methodsJack Nagel
- Reimplement archs_for_command on top of the new Mach-O methods - Move ArchitectureListExtension to mach.rb - Add a test for the ArchitectureListExtension Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-05-13Use 'which' helper method moreJack Nagel
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-05-07Unify 'which' and which_s' utility methodsJack Nagel
'which' only returns a Pathname or nil, and doesn't care about anything sent to stderr, so just silence it by default and combine the two methods. Closes Homebrew/homebrew#12115. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-04-30Add ofail command and fix bottle command output.Mike McQuaid
2012-04-15StandardCompilers: 3.1.4 doesn't have llvmMisty De Meo
2012-04-14Add ofail command to print error and exit.Mike McQuaid
2012-04-11Fix StandardCompilers checkMisty De Meo
* Return true if Xcode version is not in hash, not nil * Use two-digit version numbers for 4.0, 4.2, 4.3
2012-04-11brew doctor: add check for outdated compilersMisty De Meo
A common source of build problems on Xcode 4.3+ is outdated compilers, usually when a user has installed over top of an old version and hasn't installed the CLT. Since the compilers from the previous Xcode are still around, brew doctor wouldn't complain. This adds a hash containing a list of the canonical compiler versions for supported versions of Xcode, and adds a check against that to determine whether a given installation has any compilers which are out of date. Closes Homebrew/homebrew#11518. Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-03-28typoDiego Plentz
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-03-18Set MACOS_VERSION as 0 on non-OSX platforms.Mike McQuaid
2012-03-16xcode_version works for Xcode 4.3 without CLIToolsMax Howell
Also correct heinous error when I put `case nil` in the code. Also outputs "dunno" if we really can't figure it out. I think this is safe.
2012-03-10Move most bottle stuff to a bottles.rb file.Mike McQuaid
2012-03-10Support bottles for non-Lion OSX versions.Mike McQuaid
2012-03-06add which methodAdam Vandenberg
2012-02-26Make xcode_version work with CLI4.3XMax Howell
Closes Homebrew/homebrew#10460.
2012-02-25inreplace: warn if no substitutions were madeJack Nagel
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-02-21Yield to the inevitableAdam Vandenberg
2012-02-21Don't hang if xcode-select -print-path is "/"Max Howell
Introducing MacOS.xctools_fucked?. Refs Homebrew/homebrew#10293.
2012-02-20Don't hang if xcode-select is set to "/"Max Howell
2012-02-18OTT handling for various Xcode-4.3/CLI-Tools edge casesMax Howell
Also xcrun can only exist at /usr/bin/xcrun. Most of these edges are non-buildable environments, but I didn't know that when writing it, so it may as well stay, since it still does make brew --env more correct.
2012-02-17Find xcrun if user doesn't ever install Xcode 4.3 helper toolsMax Howell
2012-02-17Fix some default_cc behaviorMax Howell
Fixes Homebrew/homebrew#10245. Fixes Homebrew/homebrew#10248.
2012-02-17Work with Xcode 4.3 if user didn't install helper toolsMax Howell
We ask Spotlight to find Xcode and use that path, neat right?
2012-02-16Use xcrun; Ensure clang is the default compiler with Xcode 4.3Max Howell
Using xcrun as a proxy to execute the compiler tools is per its design. This means you can't treat ENV['CC'] as a path anymore, but I think I found the cases this was being expected and corrected them. It was not proper anyway to assume the variable was a path, it can be anything. Like a proxy. Like xcrun. Also more thoroughly clear ENV.
2012-02-16Fix default_ccMax Howell
Dumb logic error. Also same one in MacOS.compiler. Am I getting old? Also it returns a string and not a float.
2012-02-16Find the dev tools, even with Xcode 4.3Max Howell
Fixes Homebrew/homebrew#9179.
2012-02-16Support Xcode 4.3 xcode-select being wrongMax Howell
I installed Xcode 4.3 and xcode-select is wrong, so this will fix it for most users.
2012-02-10Be gentle when stdout is not a ttyJack Nagel
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-01-29Bottles should care about cellar and prefixMike McQuaid
2012-01-29Bottles should care about cellar path not prefix.Mike McQuaid
Closes Homebrew/homebrew#9844.
2012-01-26Strip escaping from queryKonstantin Shabanov
Regexp#source retains escape sequences as is, so searching for formulae like 'pure-ftpd' doesn't work. Closes Homebrew/homebrew#9597. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-01-16Add option for building bottles.Mike McQuaid
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2012-01-13search: return results while parsingMisty De Meo
Instead of returning a full list of results after parsing, yield and print each result as it's found for a snappier user experience. Closes Homebrew/homebrew#9576. Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-01-13search: use v2 APIMisty De Meo
The v3 API currently lacks a search feature. Use the v2 API instead for much faster pull request filtering. Closes Homebrew/homebrew#9592. Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-01-11search: return matches from open pull requestsJack Nagel
When search can't find any local results, hit the GitHub API and search the titles of pending pull requests. This will help people find the many proposed formulae and prevent them from wasting time duplicating them. Closes Homebrew/homebrew#9018. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-01-11Make MacOS.clang_build_version more usefulJack Nagel
Let's choose the first \d{2,} as the build number, as it is the most likely to indicate significant changes, and we need something to use for comparison when selecting compilers. Signed-off-by: Jack Nagel <jacknagel@gmail.com>