## Provider description file format

Providers for libaccounts-glib are described with a simple XML file. An example for a hypothetical `CoolProvider` is shown below:

Example 5. Provider description for CoolProvider

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="UTF-8"?>
    <provider id="coolprovider">
      <name>CoolProvider</name>
      <description>CoolProvider brings frost to your desktop</description>
      <translations>coolprovider</translations>
      <icon>coolprovider</icon>
      <domains>.*coolprovider\.com</domains>

    </provider>

The example provider description describes a provider called `coolprovider`, indicated by the `id` attribute on the `provider` element. The `name` element contains a human-readable version of the provider name. The `description` is a string that describes the provider in general, and is especially useful if the provider supports a wide range of services. The `translations` element is used to indicate the gettext translation domain for the `name` and `description` elements, to be used by applications when showing those elements in a UI. The `icon` element specifies a themed icon to represent the provider. Finally, a `domains` element is a regular expression which should match all the web domains where the account with `coolprovider` can be used. This can be used with an Ubuntu Webapp to automatically create an account when the user logs in to an accepted domain.

### Installation

Provider description filenames should end in `.provider` and be installed to `${prefix}/share/accounts/providers`, which normally expands to `/usr/share/accounts/providers`. The path can be queried with pkg-config by checking the `providerfilesdir` variable of the libaccounts-glib pkg-config file, for example:

    1
    pkg-config --variable=providerfilesdir libaccounts-glib