47 lines
1.1 KiB
Markdown
47 lines
1.1 KiB
Markdown
# Plugin guide for docker-volume-manager
|
|
|
|
Plugins allow you to add features to docker-volume-manager, such as commands and
|
|
extensions to the `toolbox` object that provides the majority of the functionality
|
|
used by docker-volume-manager.
|
|
|
|
Creating a docker-volume-manager plugin is easy. Just create a repo with two folders:
|
|
|
|
```
|
|
commands/
|
|
extensions/
|
|
```
|
|
|
|
A command is a file that looks something like this:
|
|
|
|
```js
|
|
// commands/foo.js
|
|
|
|
module.exports = {
|
|
run: (toolbox) => {
|
|
const { print, filesystem } = toolbox
|
|
|
|
const desktopDirectories = filesystem.subdirectories(`~/Desktop`)
|
|
print.info(desktopDirectories)
|
|
}
|
|
}
|
|
```
|
|
|
|
An extension lets you add additional features to the `toolbox`.
|
|
|
|
```js
|
|
// extensions/bar-extension.js
|
|
|
|
module.exports = (toolbox) => {
|
|
const { print } = toolbox
|
|
|
|
toolbox.bar = () => { print.info('Bar!') }
|
|
}
|
|
```
|
|
|
|
This is then accessible in your plugin's commands as `toolbox.bar`.
|
|
|
|
# Loading a plugin
|
|
|
|
To load a particular plugin (which has to start with `docker-volume-manager-*`),
|
|
install it to your project using `npm install --save-dev docker-volume-manager-PLUGINNAME`,
|
|
and docker-volume-manager will pick it up automatically.
|