osr-discourse/commands/sync-component.js
2024-06-29 21:53:26 +02:00

125 lines
13 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = exports.parse = void 0;
const path = require("path");
const osr_cli_commons_1 = require("@plastichub/osr-cli-commons");
const fs_1 = require("@plastichub/osr-cli-commons/fs");
const exists_1 = require("@plastichub/fs/exists");
const constants_1 = require("../lib/discourse/constants");
const _cli_1 = require("../_cli");
const index_1 = require("../index");
const component_1 = require("../lib/sync/component");
const osr_fs_utils_1 = require("@plastichub/osr-fs-utils");
const globBase = require('glob-base');
const parse = (argv) => {
let ret = {
...argv
};
let srcInfo;
let variables = {};
ret.src = argv.src;
ret.source = (0, fs_1.resolve)((0, osr_cli_commons_1.forward_slash)(ret.source), ret.alt, variables);
ret.root = (0, fs_1.resolve)((0, osr_cli_commons_1.forward_slash)(ret.root), ret.alt, variables);
ret.product_root = (0, fs_1.resolve)((0, osr_cli_commons_1.forward_slash)(ret.product_root), ret.alt, variables);
if (ret.src) {
ret.src = (0, fs_1.resolve)(ret.src, ret.alt, variables);
// in case a file with a glob pattern is provided, strip the glob
// this is a special case, enabling shared scripts in Alt-Tap Salamand
const glob_base = globBase(ret.src);
const file = ret.src.replace(glob_base.glob, '').replace(/\/$/, '');
// case : single file
if ((0, exists_1.sync)(file) && (0, fs_1.isFile)(file)) {
ret.src = file;
}
const src = (0, fs_1.resolve)((0, osr_cli_commons_1.forward_slash)(ret.src), ret.alt, variables);
srcInfo = (0, osr_cli_commons_1.pathInfo)(src);
// case : glob pattern
if (srcInfo && srcInfo.FILES && srcInfo.FILES.length) {
ret.srcInfo = srcInfo;
for (const key in srcInfo) {
if (Object.prototype.hasOwnProperty.call(srcInfo, key)) {
variables['SRC_' + key] = srcInfo[key];
}
}
}
else {
ret.src = (0, fs_1.resolve)(ret.src, ret.alt, variables);
}
}
if (argv.cwd) {
ret.cwd = path.resolve(argv.cwd);
if (!(0, exists_1.sync)((ret.cwd))) {
index_1.logger.error(`Invalid working directory ${argv.cwd}`);
}
}
else {
ret.cwd = process.cwd();
}
ret = {
...ret,
variables,
srcInfo
};
return ret;
};
exports.parse = parse;
const defaultOptions = (yargs) => {
return yargs
//standard options
.option('debug', { type: 'boolean', default: true, describe: 'debug messages' })
.option('verbose', { type: 'boolean', default: true, describe: 'even more debug messages' })
.option('alt', { type: 'boolean', default: false, describe: 'alt token (%)' })
//discourse
.option('yaml', { type: 'boolean', default: false, describe: 'Parse options from YAML header' })
.option('skip', { type: 'boolean', default: true, describe: 'Skip existing' })
.option('uploadLocal', { type: 'boolean', default: true, describe: 'Upload local images to Discourse' })
.option('uploadRemote', { type: 'boolean', default: true, describe: 'Upload remote images to Discourse' })
.option('title', { type: 'string', default: 'Title of the Discourse post' })
.option('cat', { default: constants_1.CAT_TEST, type: 'number' })
.option('timestamp', { type: 'number', default: Date.now() })
.option('owner', { type: 'number', default: constants_1.DEFAULT_IMPORT_OWNER })
.option('config', { type: 'string', default: 'discourse_admin' })
//osrl
.option('src', {
default: '${OSR_ROOT}/osr-machines/injection/**/config.json',
type: 'string',
describe: 'Source : Path|Glob. Supported: HTML|MD|OSR(Options via YAML header)'
})
.option('src2', {
default: '${OSR_ROOT}/osr-machines/sheetpress/cassandra-light/config.json',
type: 'string',
describe: 'Source : Path|Glob. Supported: HTML|MD|OSR(Options via YAML header)'
})
.option('env', { type: 'string', default: 'forum' })
.option('profile', { type: 'string', default: "${OSR_ROOT}/osr-templates/discourse/base.json" })
.option('format', { type: 'string', default: 'md' })
.option('source', { type: 'string', default: "${OSR_ROOT}/osr-templates/discourse/root.html" })
.option('language', { type: 'string', default: 'osr' })
.option('plugins', { type: 'string', default: '${root}/osr/plugins' })
.option('root', { type: 'string', default: process.cwd() })
.option('product_root', { type: 'string', default: '${PRODUCT_ROOT}/products' })
.option('cwd', { type: 'string', default: process.cwd() })
.option('module', { type: 'string', default: 'osr-lib-components' })
.option('filter', { type: 'string', default: osr_fs_utils_1.PFilterValid.library_component })
.option('cache', { type: 'boolean', default: true })
.option('env_key', { type: 'string', default: 'OSR-CONFIG', describe: 'Environment key to the config path.' });
};
let options = (yargs) => defaultOptions(yargs);
const register = (cli) => {
return cli.command('sync-component', 'Sync OSR Component', options, async (argv) => {
(0, _cli_1.defaults)();
if (argv.help) {
return;
}
let options = (0, exports.parse)(argv);
if (!options) {
return;
}
// options.debug && logger.debug(`CLI Args In`, argv)
// logger.debug('Options', options)
let ret = (0, component_1.syncComponent)(options);
return ret;
});
};
exports.register = register;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29tbWFuZHMvc3luYy1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTRCO0FBRzVCLGlFQUFxRTtBQUNyRSx1REFBZ0U7QUFFaEUsa0RBQXNEO0FBRXRELDBEQUEyRTtBQUUzRSxrQ0FBa0M7QUFFbEMsb0NBQWlDO0FBQ2pDLHFEQUFxRDtBQUNyRCwyREFBdUQ7QUFDdkQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBRTlCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBUyxFQUFtQyxFQUFFO0lBRWhFLElBQUksR0FBRyxHQUFRO1FBQ1gsR0FBRyxJQUFJO0tBQ1YsQ0FBQTtJQUVELElBQUksT0FBTyxDQUFBO0lBQ1gsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFBO0lBRWxCLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQTtJQUVsQixHQUFHLENBQUMsTUFBTSxHQUFHLElBQUEsWUFBTyxFQUFDLElBQUEsK0JBQWEsRUFBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUNuRSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUEsWUFBTyxFQUFDLElBQUEsK0JBQWEsRUFBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUMvRCxHQUFHLENBQUMsWUFBWSxHQUFHLElBQUEsWUFBTyxFQUFDLElBQUEsK0JBQWEsRUFBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUUvRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFFVCxHQUFHLENBQUMsR0FBRyxHQUFHLElBQUEsWUFBTyxFQUFDLEdB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