This is an implementation of rbenv that aims to be agnostic about what kind of
software it is managing versions for. With names of configuration files and
variables such as .ruby-version, RBENV_VERSION, etc. being configurable,
this project could in theory manage multiple versions of anything and should be
able to replace rbenv, pyenv, phantomenv, nodenv and other rbenv-inspired projects.
For example, let's say you want to build pyenv with this:
-
Clone this project into your GOPATH;
-
Run
makewith appropriate configuration:$ PROGRAM_NAME=pyenv PROGRAM_EXECUTABLE=python make
-
Move the resulting
pyenvbinary somewhere into your PATH; -
Marvel at how you can now run
pyenv versionand other commands. This binary is hardcoded to respect:
.python-versionlocal files,PYENV_VERSION,PYENV_ROOT,PYENV_DIR.
Rbenv commands implemented so far:
-
rbenv -
rbenv---version -
rbenv-commands -
rbenv-completions -
rbenv-exec -
rbenv-global -
rbenv-help -
rbenv-hooks⚠️ -
rbenv-init -
rbenv-local -
rbenv-prefix -
rbenv-rehash -
rbenv-root -
rbenv-sh-rehash -
rbenv-sh-shell -
rbenv-shims -
rbenv-version -
rbenv-version-file -
rbenv-version-file-read -
rbenv-version-file-write -
rbenv-version-name -
rbenv-version-origin -
rbenv-versions -
rbenv-whence -
rbenv-which
Stay tuned.