asdf/docs/creating-plugins.md

52 lines
1.8 KiB
Markdown
Raw Normal View History

2015-05-17 18:27:38 -07:00
## Creating plugins
2014-12-20 07:05:56 -07:00
2015-05-21 22:11:37 -07:00
A plugin is a git repo, with a couple executable scripts, to support versioning another language or tool. These scripts are run when `list-all`, `install` or `uninstall` commands are run. You can set or unset env vars and do anything required to setup the environment for the tool.
2015-05-17 10:50:08 -07:00
### Required scripts
2014-12-20 07:05:56 -07:00
* `bin/list-all` - lists all installable versions
* `bin/install` - installs the specified version
2015-05-21 22:11:37 -07:00
All scripts except `bin/list-all` will have access to the following env vars to act upon:
* `ASDF_INSTALL_TYPE` - `version` or `ref`
* `ASDF_INSTALL_VERSION` - if `ASDF_INSTALL_TYPE` is `version` then this will be the version number. Else it will be the git ref that is passed. Might point to a tag/commit/branch on the repo.
* `ASDF_INSTALL_PATH` - the dir where the it *has been* installed (or *should* be installed in case of the `bin/install` script)
#### bin/list-all
2014-12-20 07:05:56 -07:00
Must print a string with a space-seperated list of versions. Example output would be the following:
```
1.0.1 1.0.2 1.3.0 1.4
```
2015-05-21 22:11:37 -07:00
#### bin/install
2014-12-20 07:05:56 -07:00
2015-05-21 22:11:37 -07:00
This script should install the version, in the path mentioned in `ASDF_INSTALL_PATH`
2014-12-20 07:05:56 -07:00
2015-05-17 10:50:08 -07:00
### Optional scripts
2015-05-21 22:11:37 -07:00
#### bin/list-bin-paths
2014-12-20 07:05:56 -07:00
2015-05-21 22:11:37 -07:00
List executables for the specified version of the tool. Must print a string with a space-seperated list of dir paths that contain executables. The paths must be relative to the install path passed. Example output would be:
2014-12-20 07:05:56 -07:00
```
2015-05-17 10:42:05 -07:00
bin tools veggies
2014-12-20 07:05:56 -07:00
```
2015-05-21 22:11:37 -07:00
This will instruct asdf to create shims for the files in `<install-path>/bin`, `<install-path>/tools` and `<install-path>/veggies`
2014-12-20 07:05:56 -07:00
2015-05-21 22:11:37 -07:00
If this script is not specified, asdf will look for the `bin` dir in an installation and create shims for those.
2014-12-20 07:05:56 -07:00
2015-05-21 22:11:37 -07:00
#### bin/exec-env
2014-12-20 07:05:56 -07:00
2015-05-21 22:11:37 -07:00
Setup the env to run the binaries in the package.
2015-05-17 18:27:38 -07:00
2015-05-21 22:11:37 -07:00
#### bin/uninstall
2014-12-20 07:05:56 -07:00
2015-05-21 22:11:37 -07:00
Uninstalls a specific version of a tool.