github.com/dahs81/otto@v0.2.1-0.20160126165905-6400716cf085/website/source/docs/plugins/install.html.md (about)

     1  ---
     2  layout: "docs"
     3  page_title: "Install - Plugins"
     4  sidebar_current: "docs-plugins-install"
     5  description: |-
     6    How to install Otto plugins.
     7  ---
     8  
     9  # Plugin Installation
    10  
    11  This page documents how to install a plugin.
    12  
    13  Otto plugins are distributed as standalone applications. Otto uses
    14  a multi-process plugin model. Otto plugins should be named in the
    15  format of `otto-plugin-*` where `*` is anything. If the plugin doesn't
    16  follow this naming convention, Otto will not be able to discover it. The
    17  name itself doesn't actually matter, so if a plugin isn't following the
    18  naming convention, just rename it to the proper format.
    19  
    20  You can verify the plugin is an Otto plugin by executing it directly.
    21  It should give you an error message similar to that below:
    22  
    23  ```
    24  $ otto-app-ruby
    25  This binary is an Otto plugin. These are not meant to be
    26  executed directly. Please execute `otto`, which will load
    27  any plugins automatically.
    28  ```
    29  
    30  Once named properly, the easiest way to install a plugin is to place
    31  it in a proper directory. Otto automatically discovers plugins
    32  in the following directories in the given order.
    33  
    34  1. The directory where Otto is, or the executable directory.
    35  
    36  1. `~/.otto.d/plugins` on Unix systems or `%APPDATA%/otto.d/plugins` on Windows.
    37  
    38  1. The current working directory.
    39  
    40  That's it! As long as the plugin is named properly and is in one of those
    41  directories, Otto will automatically load it.
    42  
    43  ## Conflicting Plugins
    44  
    45  It is possible in a few scenarios for plugins to conflict. The behavior
    46  in this case is well defined and documented here.
    47  
    48  The names of plugins don't matter. If two plugins are named the same but
    49  exist in two different directories that are auto-discovered, this doesn't
    50  cause any issues.
    51  
    52  If two plugins claim to support the same application type, the plugin
    53  loaded later takes precedence. "Later" is defined by being found last in
    54  the auto-discovery process. The auto-discovery process follows the directories
    55  above in that order, and in alphabetical order within the directory itself.
    56  
    57  If two plugins claim to auto-detect the same way (e.g. plugin A and B both
    58  detect based on "foo.txt"), then the plugin loaded later takes precedence.
    59  "Later" is defined in the paragraph above.