aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/utils.rb
AgeCommit message (Collapse)Author
2013-01-11Give a fresh 🍺 after hard work of brew installSamuel John
- Name of the brewed formula in "Summary" heading. - At the beginning of the summary line a 🍺 is given out (but only on Lion or above). This acts as a nice visual marker for the end of a brew-ing process. - When brewing a dependency, the name is highlighted in green. - `oh1` is bold, too (like ohai). Closes #16020. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2012-12-27Respect BROWSER environment variableJack Nagel
2012-12-27utils: replace shell `which` with native codeMisty De Meo
Originally written for tigerbrew, but useful enough for core. Replaces the shelled-out which in utils.rb with a native-ruby equivalent, which is moderately faster. Closes #16659. Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-10-31Only show the troubleshooting linkMax Howell
This has to be a last resort right? If all we show is that link (plus preceding un-deletable output) and they don't click it then maybe we should just close the ticket and hope they'll use MacPorts instead.
2012-09-27Fix conditionalJack Nagel
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-09-25Clean up and improve build-error output and logsMax Howell
All logs are now stored from each command executed in Formula.install. Error output is truncated to five lines in an attempt to not overwhelm the user and to encourage users to read the error output and report the bug properly. Maybe we can get that figure up from 70% to 90%.
2012-08-29Much better CTRL-C handlingMax Howell
Let's not show weird error messages when user interrupts during various stages of brew initialization. Tested by doing `for x in $(brew search); do brew install $x; done` and pressing CTRL-C at random short intervals.
2012-07-30Invoke non interactive shell from brew editDean Smith
Fixes #12779. Closes #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 #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 #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 #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 #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 #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 #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 #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 #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 #10245. Fixes #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 #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