prompt(prompts) {
        if (!this.allowPrompt) {
            throw new errors.SystemError('Prompts have been disabled, all options must be provided via command line flags');
        }

        if (this.auto) {
            if (Array.isArray(prompts)) {
                const defaultedPrompts = prompts.filter(hasDefault).reduce(
                    (obj, prompt) => Object.assign({}, obj, {[prompt.name]: getDefault(prompt)}),
                    {}
                );
                const promptsToAsk = prompts.filter(prompt => !hasDefault(prompt));

                if (!promptsToAsk.length) {
                    return Promise.resolve(defaultedPrompts);
                }

                return this.noSpin(() => this.inquirer(promptsToAsk))
                    .then(answers => Object.assign(answers, defaultedPrompts));
            }

            /* istanbul ignore else */
            if (hasDefault(prompts)) {
                return Promise.resolve({[prompts.name]: prompts.default});
            }
        }

        return this.noSpin(() => this.inquirer(prompts));
    }
Prompts a user for input. Uses inquirer to handle prompts

@param {Array|Object} prompts Prompts to run
@return Promise<Object> Promise with results of prompts

@method prompt
@public