aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/utils.rb
AgeCommit message (Collapse)Author
2013-11-28typoAdam Vandenberg
2013-10-25Add HOMEBREW_NO_GITHUB_API env var.David MacMahon
This patch allows users to "opt out" of using the GitHub API altogether by setting the HOMEBREW_NO_GITHUB_API environment variable. The value of the environment variable does not matter (it can even be empty!). For Bash/ZSH: export HOMEBREW_NO_GITHUB_API=1 Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2013-10-22Avoid comparing MacOS.version to floatsJack Nagel
2013-10-18Rename MacOS to OS::MacJack Nagel
2013-09-17move paths to utilsAdam Vandenberg
2013-08-30Use system path for more tools, for Linux compat.Dan Hughes
Closes #22196. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2013-08-19Use File::PATH_SEPARATOR globally instead of ':'Amos Wenger
On Unix, the path separator is ':', whereas on Windows, it is ';'. This is the first of a series of patch to bring macbrew's and winbrew's codebases closer together. The main places the magic constant ':' was being used were: - the $PATH environment variable - CMAKE-related environment variables - pkg-config related environment variables Closes #21921. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2013-08-10Allow specifying a custom PATH for which methodJack Nagel
Closes #21794.
2013-08-02Always load net/https before referencing related constantsJack Nagel
I put this require inside the method body, because eager-loading net/https is slow compared to the rest of Homebrew, and utils.rb is loaded for each `brew` invocation. It's probably worth breaking up global.rb a bit, to reduce the amount of code we are loading unnecessarily, but hopefully also to make inter-file dependencies a bit more obvious. Fixes #21617.
2013-07-15GitHub API access may result in SSL errorsJack Nagel
Closes #21216.
2013-07-12Move inreplace off of ObjectJack Nagel
Closes #21163.
2013-07-09Respect $VISUAL when picking an editorJack Nagel
2013-07-05Give advice when GitHub API requests failJack Nagel
Refs #21023.
2013-07-01Better behavior for failed connections in `brew search`Jack Nagel
Fixes #20868.
2013-06-26Don't use 'obj == nil'Jack Nagel
2013-06-22Extract constant in GitHub moduleJack Nagel
2013-06-22Extract method in Github moduleJack Nagel
2013-06-22Remove trailing whitespaceJack Nagel
2013-06-22Add Utils::JSON to wrap the JSON implementationJack Nagel
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.