74 Commits

Author SHA1 Message Date
Xu Cheng
ce7b32cec8 add HOMEBREW_ENV_PATH internal variable
`Library/ENV` like `Library/Homebrew` is part of Homebrew basecode. It
should be able to be accessed during the `brew tests`.

By adding HOMEBREW_ENV_PATH variable, we allow test suit to locate these
codes.
2016-03-21 19:07:38 +08:00
Mike McQuaid
f6cbf7bab0 Move internal command aliases from Ruby to Bash.
This means that internal command aliases can be used for Bash commands
(such as the new, Bash-based `brew update`).

Fixes Homebrew/homebrew#49182.

Closes Homebrew/homebrew#49184.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2016-02-15 11:35:25 +00:00
Martin Afanasjew
27b606d928 brew.rb: remove executable bit and shebang
Because `brew.rb` should never be invoked directly, remove executable
bit and shebang to make that more obvious.

Closes Homebrew/homebrew#48816.

Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
2016-02-05 22:07:07 +01:00
Xu Cheng
12a452557d make HOMEBREW_BREW_FILE a Pathname object
Currently HOMEBREW_BREW_FILE is a String, while other of HOMEBREW_*
variables are all Pathname. This commit unifies them all as Pathname,
so it will not cause any confusion.

Closes Homebrew/homebrew#48872.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-02-06 02:52:48 +08:00
ilovezfs
604323e641 brew.rb: use $stderr for debug and errors.
Closes Homebrew/homebrew#48634.
Closes Homebrew/homebrew#48681.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2016-02-01 18:37:36 +00:00
Mike McQuaid
7260b35c31 config: fail when HOMEBREW_BREW_FILE is unset.
Not sure why this is happening (beyond the Chef cookbook stupidly
deciding to not call through `bin/brew`) but fail and print a scary
looking error to hope to point people in the right direction.

Closes Homebrew/homebrew#48261.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2016-01-27 12:49:25 +00:00
Martin Afanasjew
29d80643d2 brew.rb: don't re-export for external commands
`bin/brew` already sets up a bunch of environment variables. There's no
need to re-export them for external commands. (`HOMEBREW_LIBRARY_PATH`
and `HOMEBREW_CACHE` continue to be determined later in the Ruby code.)
2016-01-26 16:26:07 +01:00
Xu Cheng
f51587ee74 brew.rb: fix style problem
Generated by `brew style --fix Library/brew.rb`
2016-01-20 13:55:06 +08:00
Xu Cheng
27e8577f94 brew.rb: fix overeager help flag matching 2016-01-20 13:55:06 +08:00
Xu Cheng
f9b33e26e0 brew: remove duplicated logic
This is now handled by `bin/brew`
2016-01-20 13:55:06 +08:00
Mike McQuaid
6f91b429ce Move some brew.rb logic to bin/brew. 2016-01-17 19:48:02 +00:00
Xu Cheng
c4dcf8b7b2 brew: tap missing tap as normal user
Before this, `sudo brew cask` will auto install Homebrew cask as root
user. This will cause permission problem for files in `Tap` directory.

Therefore, let's check process uid and switch to normal user for tap.
As result, `sudo brew cask` will work as the same before, except tap
files will have the correct permission attributes.

Closes Homebrew/homebrew#48059.

Signed-off-by: Xu Cheng <xucheng@me.com>
2016-01-14 19:32:07 +08:00
Mike McQuaid
2392574a77 brew.rb: only print "Kernel.exit" on failures.
Also, print as a warning to STDERR and print a backtrace in debug mode.

Closes Homebrew/homebrew#47099.

Closes Homebrew/homebrew#47154.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-12-21 10:05:49 +00:00
Martin Afanasjew
233a38ac95 brew.rb: improve handling of --version/-v option
Make both `--version` and `-v` print the Homebrew version and exit, if
provided as first and sole argument. `brew --version` no longer accepts
additional arguments (they were previously ignored). Otherwise interpret
`brew -v <arguments>` as if `brew <arguments> -v` was executed instead
(no change here), but no longer print a line with the Homebrew version.

Closes Homebrew/homebrew#46790.

Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
2015-12-10 15:01:59 +01:00
Mike McQuaid
6d384a730f brew: cask is now a tap command.
So we can remove the formula installation from `brew.rb`.

Closes Homebrew/homebrew#46843.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-12-10 09:31:39 +00:00
Mike McQuaid
8d6b6a451b brew.rb: handle cask autoinstall when cask tapped.
Otherwise it would assume if `cask` was tapped it was also installed.
2015-12-08 10:41:27 +00:00
Xu Cheng
ac6b22fd69 auto install certain external commands
Closes Homebrew/homebrew#45773.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-11-09 15:34:20 +08:00
Dominyk Tiller
cfb913b2c2 brew: add more non-root-user sudo checks 2015-10-19 05:54:56 +01:00
Dominyk Tiller
aa0a22147d brew: tighten sudo checks
`reinstall` can currently be executed under sudo and has every chunk of problems
running install under sudo does when `brew` isn't root owned.

Likewise with `postinstall` which we increasingly use to create directories and
move/install files elsewhere. Using sudo there both masks deeper issues and
makes uninstall troublesome.

Closes Homebrew/homebrew#45112.

Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
2015-10-19 05:33:08 +01:00
Dominyk Tiller
5f86a60e29 brew: check xcode license status
The xcrun code is stolen right out of the INSTALL script.

Check for user agreement of the Xcode license before permitting any other brew usage to continue.
This prevents the situation where people are instructed to "please re-run as root via sudo" on brew commands.
The check can only fail when Xcode is installed & the active developer dir.

Closes Homebrew/homebrew#44974.

Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
2015-10-15 20:29:41 +01:00
Xu Cheng
ce390b9bd9 add dev-cmd folder 2015-09-12 19:15:45 +08:00
Tim D. Smith
143709e679 include git sha1 in --version output
HOMEBREW_VERSION doesn't change very often; the repository state is more
interesting.

Closes Homebrew/homebrew#41886.
2015-08-25 00:13:53 -07:00
Xu Cheng
d62095710f More core files style updates 2015-08-03 20:38:20 +08:00
BrewTestBot
13d544e11e Core files style updates.
Closes Homebrew/homebrew#42354.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-08-03 13:22:35 +01:00
Baptiste Fontaine
ea13d62ce0 brew: print bug report URL for internal commands only
Closes Homebrew/homebrew#42069.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-07-28 20:38:13 +02:00
Xu Cheng
78a7dea3a0 add brew command
Closes Homebrew/homebrew#41034.

Signed-off-by: Xu Cheng <xucheng@me.com>
2015-07-03 14:22:38 +08:00
Baptiste Fontaine
8ef8f0f615 sudo_check: don't use a set
This is unnecessary here because we use it only once. The difference
won't be noticeable but the check is ~5 times faster now.

Closes Homebrew/homebrew#40901.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
2015-06-20 12:13:26 +02:00
Jack Nagel
72cb403a56 Move 10.11 warning to doctor, pre-install, and post-failure
Fixes Homebrew/homebrew#40778.
2015-06-16 20:02:10 -04:00
Dominyk Tiller
778c25b458 brew: warn about 10.11 unsupported
Issue a warning about Homebrew's very basic support for 10.11 at this point
in time on each run of `brew`.

Closes Homebrew/homebrew#40536.

Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
2015-06-14 18:38:55 +01:00
Misty De Meo
c72877cc82 Stop supporting Leopard
Is this really Misty?!
2015-05-14 20:58:49 -07:00
Jack Nagel
d4c8f83381 Inline error message 2015-04-21 20:46:02 -04:00
Jack Nagel
136bc02374 Simplify setting load path 2015-04-20 20:31:16 -04:00
Roberto Nibali
39ead112f3 brew.rb: fix help regex.
Don't match `help` at the end of every string because `brew installhelp`
shouldn't really be running help.

Closes Homebrew/homebrew#36559.
Closes Homebrew/homebrew#36576.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2015-02-06 08:19:35 +00:00
Mike McQuaid
3613f0349e brew.rb: remove unneeded exit code duplication.
Fixes comments made in:
91c267bdb1 (commitcomment-9146910).
2015-01-15 15:58:22 +00:00
Mike McQuaid
bd334c55a0 brew.rb: return exit code from internal commands. 2015-01-04 11:05:34 +00:00
Jack Nagel
318c103802 Remove unnecessary encoding comments
These files do not contain any non-ASCII characters.
2015-01-03 23:44:26 -05:00
Mike McQuaid
26c76381c8 Move SCM wrappers from Contributions to ENV/scm.
Closes Homebrew/homebrew#32615.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2014-10-02 16:03:23 -07:00
Mike McQuaid
bd8559c791 brew: add contributed tap commands to PATH.
This means that taps root and `cmd` directories are added to the PATH.

This should enable migration of some of our contributed commands into
taps (e.g. `homebrew-boneyard`) and make it easy for third parties to
be able to maintain these. It might also make stuff easier for existing
tools like e.g. `brew-cask` and `boxen`.

Closes Homebrew/homebrew#32471.
2014-09-24 15:14:16 -07:00
Jack Nagel
1e18413848 Fix reference to ISSUES_URL
Fixes Homebrew/homebrew#30848.
2014-07-13 21:24:07 -05:00
Mike McQuaid
7673c40f25 brew.rb: handle single usage flag case. 2014-06-26 09:27:22 +01:00
Mike McQuaid
f61633a076 brew: guard --help with nil cmd. 2014-06-26 09:24:07 +01:00
Mike McQuaid
7ecffd2771 brew.rb: handle -—help for internal/external cmds.
Only display —-help for internal commands and not for external ones;
they can handle the flag themselves.

Closes Homebrew/homebrew#26675.
References Homebrew/homebrew#26755.
Closes Homebrew/homebrew#30300.
2014-06-26 08:37:25 +01:00
Jack Nagel
4a5462cfa8 Switch to "Current" Ruby framework symlink
Closes Homebrew/homebrew#29795.
Closes Homebrew/homebrew#29819.
2014-06-03 11:03:53 -05:00
Adam Vandenberg
2c61e3c02a --help and --version only apply as first argument
This fixes external commands that provide their own
help and version subcommands.

Closes Homebrew/homebrew#26755.
2014-05-27 21:03:05 -07:00
Jack Nagel
42652049b4 Don't attempt to require nil
Fixes Homebrew/homebrew#28942.
2014-05-04 09:15:34 -05:00
Jack Nagel
6577f93f71 Simplify HOMEBREW_LIBRARY_PATH usage 2014-05-02 12:59:38 -05:00
Jack Nagel
2b46af5136 No need to put vendor on the load path 2014-05-02 12:59:38 -05:00
Jack Nagel
f6d81cf762 require accepts Pathnames 2014-05-02 12:59:38 -05:00
Jack Nagel
1ff182ae68 Set ENV variables to strings, not pathnames 2014-05-02 12:59:38 -05:00
Jack Nagel
2d156f06c8 Use File::PATH_SEPARATOR 2014-05-02 12:59:37 -05:00