aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/utils.rb
AgeCommit message (Collapse)Author
2013-06-03Python 2.x and 3.x supportSamuel John
New `depends_on :python` Dependency. New `depends_on :python3` Dependency. To avoid having multiple formulae with endings -py2 and -py3, we will handle support for different pythons (2.x vs. 3.x) in the same formula. Further brewed vs. external python will be transparently supported. The formula also gets a new object `python`, which is false if no Python is available or the user has disabled it. Otherwise it is defined and provides several support methods: python.site_packages # the site-packages in the formula's Cellar python.global_site_packages python.binary # the full path to the python binary python.prefix python.version python.version.major python.version.minor python.xy # => e.g. "python2.7" python.incdir # includes of python python.libdir # the python dylib library python.pkg_config_path # used internally by brew python.from_osx? python.framework? python.universal? python.pypy? python.standard_caveats # Text to set PYTHONPATH for python.from_osx? python.if3then3 # => "" for 2.x and to "3" for 3.x. Further, to avoid code duplication, `python` takes an optional block that is run twice if the formula defines depends_on :python AND :python3. python do system python, 'setup.py', "--prefix=#{prefix}" end Read more in the Homebrew wiki.
2013-05-22Use implicit beginJack Nagel
2013-05-22Hoist requires out of methodsJack Nagel
2013-05-22Remove unnecessary rescue-all exception handlingDaniel Lee Harple
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-05-22Added support for a GitHub Personal API Access tokenDaniel Lee Harple
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-05-22Check GitHub API rate limit instead of silently failingDaniel Lee Harple
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-05-22Pass a User-Agent when fetching data from the GitHub APIDaniel Lee Harple
See <http://developer.github.com/v3/#user-agent-required>. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-03-31onoe and opoo print to stderrJack Nagel
This may result in some undesired output for things that suppress stdout, but we'll fix those as we go. Fixes #18650.
2013-03-31DRY ohai truncationJack Nagel
2013-03-21Turn double modifier into a single conditionalJack Nagel
2013-03-21utils: remove obsolete commentJack Nagel
2013-03-11Add with_system_path to run using system PATHs.Mike McQuaid
Needed for Linux compatibility.
2013-02-18Don't shadow outer local variablesJack Nagel
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>