This requires hitting the network, which makes the first invocation
slow. The results are inaccurate as it only pulls down the first page of
results. It is also prone to false-positives.
A better implementation is welcome, but in the years since I wrote this
code I can't think of a single time where I found it useful.
The traditional approach to installing the dependencies of a formula is
the following:
brew install `brew deps formula`
This approach ignores any options that are specified in the parent
formula. This pull request adds a --only-dependencies option to brew
install that installs the dependencies of a formula with optional flags,
but returns before installing the parent formula.
ClosesHomebrew/homebrew#25272.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
First autocompletes on the names of installed packages and then
autocompletes on available versions for that specific package
ClosesHomebrew/homebrew#25051.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
* Added `pin` et. al. to manpage.
* Added `brew pin` to `brew.1` * Added `brew unpin` to `brew.1`
* Added `brew list --pinned` to `brew.1`
* Added information about frozen formulae to `brew upgrade` in `brew.1`
* Added `pin` et.al. to completion scripts.
* Unpin formulae when uninstalling them
* Unpin and re-pin formulae when upgrading (avoids stale symlink)
References Homebrew/homebrew#18386.
ClosesHomebrew/homebrew#18515.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Commit 3b5d7939d9a660a83e29a86e6bab234f3e9f2dcb added completion for
`brew link` options, but disabled completion of the actual command
itself.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Rationale: some users insist on replacing the /usr/bin/ruby symlink
to point to another ruby on their system, which may break homebrew.
Use the full Framework path instead, which is less likely to be tampered with.
This also reorganizes the brew --config checks to reflect the different path.
FixesHomebrew/homebrew#12009.
ClosesHomebrew/homebrew#12333.
Signed-off-by: Misty De Meo <mistydemeo@gmail.com>
This was probably silly and I'm probably the only person that ever used
it. I still do, actually, but it's not really a completion function,
it's simple enough to just stick in a shell startup script, and removing
it makes the completion script usable under the new dynamic loading
scheme provided by bash-completion 1.99+.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Using an inline Ruby script we can hit the GitHub API and look for
repositories that match the tap naming scheme. The results are cached
for the duration of the current shell session, so going over the network
is a once-per-shell-session cost.
There are a few false positives, but not much we can do about that at
this point, as taps do not have to be in the fork network of any
specific repository.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
So you can do e.g.
$ brew install adamv<TAB>
Display all 106 possibilities? (y or n)
$ brew install adamv/alt/openss<TAB>
adamv/alt/openssh adamv/alt/openssl098 adamv/alt/openssl100
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
The script was lacking structure and had grown a number of one-off hacks
that would be better as reusable functions. So,
- give each subcommand that has completions it's own function
- move completion of formulae, installed brews, and outdated brews into
reusable functions
- introduce a general __brewcomp() function that takes a string of tab,
space, and/or newline separated items and converts all seperators to
newlines, and then generates a reply with compgen().
These changes should allow for easier addition of new features in the
future.
As a bonus, completion for `brew log` will include git-log options if
the git completion script is also loaded.
_brew_to_completion() is kept around for compatiblity.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This will be useful for shell tab completion when something like `brew
install <formula> --version <version>` is implemented.
Signed-off-by: Jack Nagel <jacknagel@gmail.com>