1597 Commits

Author SHA1 Message Date
Max Howell
45ba18b4d5 Rename install.rb to build.rb for clarity and great justice
It was just confusing, and since the `brew upgrade` refactor this makes more sense too.

Shame it still downloads in there etc. but whatever. Homebrew 2 will fix!
2011-08-24 22:30:44 +01:00
Max Howell
13918ff6d9 Record which keg is linked
Will be useful for a variety of reasons, but for now, I'm just using it to ensure install won't install again if something is already installed (use brew upgrade instead).

But means that brew switch and that can work properly etc.
2011-08-24 22:30:44 +01:00
Max Howell
1f95b07ba5 Fix keg exception pretty output 2011-08-24 22:30:43 +01:00
Max Howell
6ac0a28523 Implement bottles again
Bottles now pour purely, without doing all the other unnecessary stuff that happened before the `brew upgrade` code shuffle.

Formula.pourable? removed since it was install-specific metadata and not related to the formula itself. Now all such logic is in the FormulaInstaller which is much cleaner.

I also changed the bottle cache location to the normal directory and added a .bottle pre-extension. Thus you can see everything in one directory without messing about.
2011-08-24 22:30:43 +01:00
Max Howell
19e387d92e brew upgrade
Consequence: you can no longer install when something is already installed, you must upgrade it. This doesn't apply if the formula in question was unlinked. You can still --force installs though.

Rationale: the old way of installing over the top would leave symlinks to multiple versions in /usr/local if the old version had a file the newer version didn't. The new upgrade command handles everything properly.
2011-08-24 22:30:43 +01:00
Max Howell
3a0cf31ed0 Tidy ENV.rb 2011-08-24 22:30:43 +01:00
Max Howell
4dc8318dc3 Observe all applicable options in handle_llvm_failure 2011-08-24 22:30:43 +01:00
Max Howell
39453f5a9d Auto-substitute certain variables in DATA patches
HOMEBREW_PREFIX for example.
2011-08-24 22:30:43 +01:00
Max Howell
4f4d70d457 Prettier brew uses output (columnate) 2011-08-24 22:30:43 +01:00
Max Howell
42cc28597c HOMEBREW_CURL_ARGS so that tests can be more silent 2011-08-24 22:30:43 +01:00
Max Howell
9713bb76b0 oh1 stdout display function 2011-08-24 22:30:42 +01:00
Max Howell
31885c2a99 Constants that are used once are dumb
It just means nobody knows what is being done without scrolling up and down, up and down the file like a doofus on a pogo stick.
2011-08-24 22:30:42 +01:00
Max Howell
e9aaef0e25 Revise cleanup text, we're removing, not uninstalling 2011-08-24 22:30:42 +01:00
Dave Bayer
84eae3c425 Fix uninstall.rb brew remove --force "Directory not empty" error
Finder activity such as moving the position of an icon can create an unexpected
.DS_Store file in a Cellar directory. This causes `brew remove --force` to throw
an error that is reported as

Error: Directory not empty - /usr/local/Cellar/<formula>

This fix avoids that error, by calling rmtree rather than rmdir.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2011-08-22 20:26:53 -07:00
Max Howell
471dc987e5 Specify that they are symlinks 2011-08-22 10:26:01 +01:00
Max Howell
79d78bf933 Blacklist MacRuby
For now we don't support this kind of thing because our formula is a worse option, even though you have to update it yourself.

Closes Homebrew/homebrew#6174
2011-08-19 16:01:39 +01:00
Charlie Sharpsteen
8a1bcf70a1 Contribution: Tweak bash completion for install
Selection of generic installation options, such as `--HEAD`, is now lumped
together with selection of formulae-specific options.

This allows any installation option to be tab-completed *before or after* the
formula name is specified.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2011-08-17 23:23:20 -07:00
Max Howell
df113d3ce6 Only error out for sudo brew install
Note this only happens if Homebrew is *not* installed sudo. Which is most of the time true.

Fixes Homebrew/homebrew#6899
2011-08-17 12:30:21 +01:00
Jack Nagel
32c746ef45 Add keg-only text to brew info output
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2011-08-11 11:46:35 -07:00
Adam Vandenberg
6666494551 brew doctor: do not check TMPDIR if it is not set 2011-08-07 10:01:52 -07:00
Max Howell
554147fa99 Reset --hard after the first git init
We don't know what revision the tarball was when homebrew was installed, so all we can do really is hard reset. In theory some set of git commands should suffice, but apparently --soft and --mixed resets ended up putting stuff in the index which would break subsequent `brew updates`.

Fixes Homebrew/homebrew#6851
2011-08-06 11:11:06 +01:00
CharlieRoot
c76ae1a94f Fix Xcode 4 compiler paths for --use-gcc
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2011-08-04 10:07:08 -07:00
Max Howell
fb56b56997 Rephrase comment so it makes sense 2011-08-02 14:45:52 +01:00
Max Howell
48501e8e1f Prettier brew versions output 2011-08-02 14:45:37 +01:00
Max Howell
f576cae37a Bump copyright year 2011-08-02 14:45:26 +01:00
Max Howell
cb049409e5 Fix brew doctor if sbin directory doesn't exist 2011-08-02 14:45:03 +01:00
Jack Nagel
fd6c9833c6 Fix brew update local changes bug
Users were seeing local changes in their repository after updating, even
though they had made no local changes.

The repository setup sequence should use `git reset --soft` rather than
vanilla `git reset`, which defaults to '--mixed'. '--soft' updates
_only_ HEAD, leaving the index as-is, allowing future incantations of
`brew update` to proceed without errors.

Fixes Homebrew/homebrew#6732.
2011-08-02 13:21:06 +01:00
Max Howell
616b52e627 Oops, show proper git checkout command 2011-08-02 12:58:16 +01:00
Max Howell
18a54259e9 Improvements to brew versions
The output happens as it is determined, rather than all at once, which is preferable for CLI commands. This meant I had to hard-code the left-justification.

The pre-amble warning is removed. Instead the command outputs the git checkout command for each she that you can type to get that old formula.

I decided that reseting the one file will work 99% of the time and that it is too risky to reset the whole repo, this will roll-back bug fixes. Instead we should add functionality to compat/ in order to support old formula as required. Sometimes deps may have to be rolled-back too, but the user will have to figure this out on an ad-hoc basis. We are assuming a failure sophisticated user anyway, one who would like to get old versions of stuff.

I moved most of the functions into Formula since IMO this makes more conceptual sense.

I made the she get abbreviated by git (using --abbrev-commit) itself so it as short as can be.
2011-08-02 12:34:33 +01:00
Max Howell
b36dcc4ffd Improve compatibility for old formula
Allow compatibility to be disabled with --no-compat or HOMEBREW_NO_COMPAT environment variable.
2011-08-02 12:22:58 +01:00
Sebastian Staudt
6726fe090f Added new command "versions" 2011-08-02 10:35:30 +01:00
Adam Vandenberg
f30893a968 Fix brew update on Leopard 2011-07-31 10:32:09 -07:00
Mike McQuaid
9289c06299 Don't install bottles in non-default HOMEBREW_PREFIX. 2011-07-31 11:47:14 +01:00
Adam Vandenberg
733e280e61 fix doctor on 10.5 2011-07-30 22:24:19 -07:00
Adam Vandenberg
0818189b5d Fix stripping of keg-only reasons 2011-07-30 10:11:35 -07:00
Max Howell
7e2411eb4d Remove "boring" args from the pretty_args only
Dumb mistake. Sorry.

Closes Homebrew/homebrew#6722
2011-07-30 11:20:23 +01:00
Max Howell
71cc478a86 Strip keg_only? text to avoid double newlines 2011-07-30 11:04:11 +01:00
Max Howell
630c77a362 Exclude brew manpages from unbrewed. 2011-07-30 11:04:04 +01:00
Max Howell
1cfad8f502 Don't abort if /usr/local is not writable
Since this is our new policy for /usr/local.
2011-07-30 11:03:34 +01:00
Max Howell
e354b70db3 If brew is installed non-root refuse to sudo brew
Rationale: people break their installs by mixing sudo and non-sudo usage. They are used to having to `sudo port install` and shit like that, so I understand why the mixing happens.
2011-07-30 11:03:34 +01:00
Mike McQuaid
81c7ec9933 Build from source (for now) unless on Lion.
Longer-term we'll try and use install_name_tool to fix Lion
bottles so they run fine on 10.5 and/or 10.6.

Closes Homebrew/homebrew#6699.
2011-07-29 18:36:47 +01:00
CharlieRoot
d6c84172ed linkapps: also search for bin/*.app
Qt and PhantomJS install apps to this folder, so find those apps too.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2011-07-29 09:17:18 -07:00
Adam Vandenberg
8c50cb54c0 audit: make version checks strict only 2011-07-29 08:34:00 -07:00
Max Howell
76745610ec Emphasise the consequence of not installing to /usr/local 2011-07-29 15:21:10 +01:00
Max Howell
01a779655c Writability for /usr/local is no longer required
Provided the user installed with our installer anyway. It creates all the directories that Homebrew will need during its life thus negating the need for root writability.
2011-07-29 14:56:59 +01:00
Max Howell
98ffbeb8f5 Make the check for a valid git repo better
Because the new installer creates the .git directory when it installs.
2011-07-29 14:55:41 +01:00
Max Howell
36ce83fd8d Don't mention the sbin PATH issue unless files are there
Because the new installer will always create /usr/local/sbin. Because we must keep /usr/local root:wheel unless we want to be considered bad citizens.
2011-07-29 14:54:42 +01:00
Max Howell
1576e0a537 Commands should not have side-effects
Don't install when bottling. Homebrew should bottle whatever is installed. If nothing is installed, error out.
2011-07-29 11:59:27 +01:00
Max Howell
924f92300f Fix cache extension for github tarballs 2011-07-29 11:58:41 +01:00
Max Howell
3cda43a681 Don’t display boring configure arguments 2011-07-29 11:58:41 +01:00