177 Commits

Author SHA1 Message Date
Daniel Lee Harple
471502bc06 Remove unnecessary rescue-all exception handling
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-05-22 19:53:05 -05:00
Daniel Lee Harple
08388b149e Added support for a GitHub Personal API Access token
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-05-22 19:53:05 -05:00
Daniel Lee Harple
0fa5c47d7f Check GitHub API rate limit instead of silently failing
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-05-22 19:53:04 -05:00
Daniel Lee Harple
222f96d37b Pass a User-Agent when fetching data from the GitHub API
See <http://developer.github.com/v3/#user-agent-required>.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-05-22 19:53:01 -05:00
Jack Nagel
ba202df70b onoe and opoo print to stderr
This may result in some undesired output for things that suppress
stdout, but we'll fix those as we go.

Fixes Homebrew/homebrew#18650.
2013-03-31 15:20:12 -05:00
Jack Nagel
7af5a74c4e DRY ohai truncation 2013-03-31 15:18:38 -05:00
Jack Nagel
21f566b662 Turn double modifier into a single conditional 2013-03-21 17:20:57 -05:00
Jack Nagel
688ae72919 utils: remove obsolete comment 2013-03-21 17:12:56 -05:00
Mike McQuaid
9837bbda55 Add with_system_path to run using system PATHs.
Needed for Linux compatibility.
2013-03-11 18:26:25 +00:00
Jack Nagel
f037be5148 Don't shadow outer local variables 2013-02-18 12:13:36 -06:00
Samuel John
bc3c07d197 Give a fresh 🍺 after hard work of brew install
- 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 Homebrew/homebrew#16020.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-01-11 11:16:11 +00:00
Jack Nagel
9362a7c897 Respect BROWSER environment variable 2012-12-27 23:41:44 -06:00
Misty De Meo
d6299af86c utils: replace shell which with native code
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 Homebrew/homebrew#16659.

Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
2012-12-27 19:37:21 -04:00
Max Howell
394549dd3d Only show the troubleshooting link
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-10-31 11:28:29 -04:00
Jack Nagel
8d3ff5691d Fix conditional
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-09-27 16:21:39 -05:00
Max Howell
a217b03952 Clean up and improve build-error output and logs
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-09-25 11:31:56 -04:00
Max Howell
20ce16a3ff Much better CTRL-C handling
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-08-29 12:41:35 -04:00
Dean Smith
fe32e6343d Invoke non interactive shell from brew edit
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-30 13:23:19 -04:00
Charlie Sharpsteen
8a0c94d4e0 quiet_system: Dump to /dev/null instead of closing
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-07-09 09:21:33 -08:00
Adam Vandenberg
0bb95960e6 Extract MacOS module to separate file 2012-06-27 12:09:57 -07:00
Adam Vandenberg
b37c5bed61 Refactor MacOS.
* call `xcode-select` once and cache the result
* reuse functions where appropriate
2012-06-27 12:08:14 -07:00
Adam Vandenberg
c32e67b83c remove confusing comments 2012-06-27 11:55:42 -07:00
samueljohn
13e14ef65a Fix Homebrew/homebrew#13012 properly and don't set the SDK if CLT
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-27 11:50:43 -07:00
Misty De Meo
bfec2ac090 MacOS.sdk_path: silence stderr from xcode-select 2012-06-25 16:48:06 -05:00
Misty De Meo
f231a8b079 MacOS.sdk_path: use strip instead of chomp.chomp 2012-06-25 16:00:07 -05:00
Misty De Meo
cd34b164b2 MacOS.sdk_path: make sure xcode-select is sane
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-25 15:52:40 -05:00
Misty De Meo
31d152780b MacOS.sdk_path: chomp harder!
There were two newlines being returned by the command being called in sdk_path,
not just one.
2012-06-25 15:47:45 -05:00
Misty De Meo
2baf6487d1 Hotfix for stack overflow
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-25 15:13:35 -05:00
Misty De Meo
b9f4b682b5 StandardCompilers: add Xcode 4.3.3 2012-06-25 09:42:05 -05:00
samueljohn
725feb3db1 Core change: XCode only install, with CLT or both
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-24 19:11:06 -07:00
Jack Nagel
de5f0a8e9b Switch to "legacy" GitHub search API
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-06-12 11:51:05 -05:00
Jack Nagel
53ce9dba53 archs_for_command: use new Mach-O Pathname methods
- 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-30 22:32:48 -05:00
Jack Nagel
210c9ac205 Use 'which' helper method more
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-05-13 19:28:03 -05:00
Jack Nagel
68124d481f Unify 'which' and which_s' utility methods
'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-05-07 21:05:47 -05:00
Mike McQuaid
fe969c21ad Add ofail command and fix bottle command output. 2012-04-30 21:38:08 +08:00
Misty De Meo
d4534ec528 StandardCompilers: 3.1.4 doesn't have llvm 2012-04-15 17:49:49 -05:00
Mike McQuaid
d4f7577185 Add ofail command to print error and exit. 2012-04-14 17:48:34 +10:00
Misty De Meo
bf0955dc8a Fix StandardCompilers check
* 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-11 21:45:43 -05:00
Misty De Meo
4dc1a7bdce brew doctor: add check for outdated compilers
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-04-11 10:08:46 -05:00
Diego Plentz
4ddbb335d0 typo
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2012-03-28 20:02:07 -07:00
Mike McQuaid
23b84ef732 Set MACOS_VERSION as 0 on non-OSX platforms. 2012-03-18 15:43:39 +13:00
Max Howell
c1545fe56a xcode_version works for Xcode 4.3 without CLITools
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-16 00:59:39 +00:00
Mike McQuaid
552dcdc703 Move most bottle stuff to a bottles.rb file. 2012-03-10 18:10:40 +13:00
Mike McQuaid
4a306f32f4 Support bottles for non-Lion OSX versions. 2012-03-10 18:09:35 +13:00
Adam Vandenberg
cc78050dc5 add which method 2012-03-06 06:53:06 -08:00
Max Howell
5c7c82baf8 Make xcode_version work with CLI4.3X
Closes Homebrew/homebrew#10460.
2012-02-26 12:59:12 +00:00
Jack Nagel
a3edec8b88 inreplace: warn if no substitutions were made
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2012-02-25 22:37:29 -06:00
Adam Vandenberg
c34cdbbeb9 Yield to the inevitable 2012-02-21 20:14:56 -08:00
Max Howell
61a8bd9ca0 Don't hang if xcode-select -print-path is "/"
Introducing MacOS.xctools_fucked?.

Refs Homebrew/homebrew#10293.
2012-02-21 10:33:03 +00:00
Max Howell
2759dcf06b Don't hang if xcode-select is set to "/" 2012-02-20 18:24:36 +00:00