/**
 * Runner of "{{command.name}}" command.
 * @memberof module:{{pkg.name}}/lib
 * @inner
 * @constructor {{pascalcase command.name}}Runner
 * @param {object} config - Runner configuration.
 */

"use strict";

var async = require('async'),
    extend = require('extend');

/** @lends {{pascalcase command.name}}Runner */
function {{pascalcase command.name}}Runner() {
    var s = this;
    s.init.apply(s, arguments);
}

{{pascalcase command.name}}Runner.prototype = {
    /** @constructs {{pascalcase command.name}}Runner */
    init: function (config) {
        var s = this;
        extend(s, config);
        s.validate();
    },
    /**
     * Apemanfile instance.
     */
    apemanfile: null,
    /**
     * Run a {{command.name}}.
{{#each command.params}}     * @param {string} {{@key}} - {{this}}.
{{/each}}     * @param {function} callback - Callback when done.
     */
    run: function ({{#each command.params}}{{@key}}, {{/each}}callback) {
        var s = this,
            apemanfile = s.apemanfile;

    },
    /**
     * Validate configuration.
     */
    validate: function () {
        var s = this;
        if (!s.apemanfile) {
            throw new Error('apemanfile is required.');
        }
    }

};

module.exports = {{pascalcase command.name}}Runner;