-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Plugin bundles #102
Plugin bundles #102
Conversation
👍 👍 |
Looks good, covers all the needs I had. |
I like. This cleans up the whole "rbenv gemset install" noise. Good insight on this one! |
Looking forward to trying it out! I've only used a subset of the features described above. |
Sounds like a consensus then :) |
I restructured |
I don't think we should have an empty plugins directory in the repo itself, but we should add |
Are you planning on suggesting a root or system-wide installation? |
Plugin bundles
The purpose of this branch is to provide a way to install self-contained plugin bundles into the
$RBENV_ROOT/plugins
directory without any additional configuration. These plugin bundles make use of existing conventions for providing rbenv commands and hooking into core commands.(Note that this branch renames the recently-added
$RBENV_PLUGIN_PATH
environment variable to$RBENV_HOOK_PATH
, andrbenv plugin-scripts
torbenv hooks
. Therbenv.d
directories are now referred to as hook directories, not plugin directories.)Say you have a plugin named
foo
. It provides anrbenv foo
command and hooks into therbenv exec
andrbenv which
core commands. Its plugin bundle directory structure would be as follows:When the plugin bundle directory is installed into
~/.rbenv/plugins
, therbenv
command will automatically add~/.rbenv/plugins/foo/bin
to$PATH
and~/.rbenv/plugins/foo/etc/rbenv.d/exec:~/.rbenv/plugins/foo/etc/rbenv.d/which
to$RBENV_HOOK_PATH
.The structure is designed so that plugins may also be installed via traditional means. For example, a Homebrew package of the plugin could simply merge the
bin
andetc
directories into/usr/local
.Inspired by #99.