Plugins
Plugins contain a collection of resources. Codify comes with a core plugin maintained by the Codify team that has essential resources like xcode-tools, shell tools (path, alias), and homebrew.
Adding plugins
[ { "type": "project", "plugins": [ "ssh", "azure" ] }]
3rd party plugins can be specified using the plugins parameter in a project config. See the plugin registry for all plugins that can be included.
Another option for adding a plugin is to fully qualify the resource type.
[ { "type": "@kevinwang5658/azure" }]
Use the syntax @plugin/resource-type
to include a resource from a 3rd party plugin without declaring
it in the project config.
A path to a local plugin project can also be specified.
[ { "type": "project", "plugins": ["/Users/codify-user/projects/src/index.ts", "../plugin2/src/index.ts"] }]
This is useful for developing a new plugin locally. Both absolute and relative paths are supported.
The referenced folder must point to the entry file for the plugin. The project have a valid package.json
and the npm package codify-plugin-lib
installed. See more in plugin development.
Caching
When the Codify CLI first reads a codify.json
file it will parse out the required plugins
from the project config and fully qualified resource names. It will download the plugins from
the Codify registry and cache them under ~/Library/Caches/codify/plugins
. If a problem arises
from a stale or improperly downloaded/configured plugin, the plugins
directory can be deleted to
clear out the cached plugins.