"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
const commander = require("commander");
const ensureAuth_1 = require("./utils/ensureAuth");
const Logger_1 = require("./../modules/Logger");
const index_1 = require("./../Api/screen/index");
const configureHelpOptions_1 = require("../utils/configureHelpOptions");
const utils_1 = require("./../utils");
const I18n_1 = require("./../modules/I18n");
const chalk_1 = require("chalk");
commander
    .name('wiz screen block')
    .description('Generate icons for email blocks. To verify block icons are up-to-date, run "wiz dev" before "wiz screen block". Re-run these commands every time you change your project')
    .option('-t, --theme <themeName>', 'Generate icons for all blocks and all target systems (targetCLM) for this theme')
    .option('-a, --all', 'Generate icons for all blocks, all themes, and all target systems (targetCLM)')
    .option('-i, --id <blockId>', 'Generate icons for this block, all themes, and all target systems (targetCLM)')
    .option('-c, --clm <clmCode>', 'Generate icons for all blocks and all themes for this target system (targetCLM)')
    .configureHelp({
    optionDescription: configureHelpOptions_1.capitalizeOptionDescription,
})
    .parse(process.argv);
execute(commander.opts(), process.cwd())
    .catch(err => Logger_1.default.error(err.message));
function execute(opts, presentationPath) {
    return __awaiter(this, void 0, void 0, function* () {
        yield ensureAuth_1.default();
        if (yield utils_1.ensureDevBuild(presentationPath)) {
            Logger_1.default.info(chalk_1.default.yellow(I18n_1.default.info('SCREEN_BLOCK_REMINDER')));
        }
        const screenAction = yield index_1.createAction(presentationPath);
        return screenAction(opts, presentationPath, 'block');
    });
}
//# sourceMappingURL=wiz-screen-block.js.map