99 lines
11 KiB
JavaScript
99 lines
11 KiB
JavaScript
"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 });
|
|
exports.each = exports.yargsOptions = exports.zodSchema = void 0;
|
|
const zod_1 = require("zod");
|
|
const path = require("path");
|
|
const pMap = require("p-map");
|
|
const primitives_1 = require("@plastichub/core/primitives");
|
|
const read_1 = require("@plastichub/fs/read");
|
|
const exists_1 = require("@plastichub/fs/exists");
|
|
const write_1 = require("@plastichub/fs/write");
|
|
const dir_1 = require("@plastichub/fs/dir");
|
|
const config_1 = require("@plastichub/osr-commons/config");
|
|
const _1 = require("./");
|
|
const osr_commons_1 = require("@plastichub/osr-commons");
|
|
const osr_commons_2 = require("@plastichub/osr-commons");
|
|
const profile_1 = require("@plastichub/osr-commons/profile");
|
|
const process_1 = require("../lib/process");
|
|
const __1 = require("../");
|
|
const zodSchema = () => zod_1.z.object({
|
|
logLevel: zod_1.z.string().default('info'),
|
|
main: zod_1.z.string(),
|
|
log: zod_1.z.string().optional(),
|
|
list: zod_1.z.string(),
|
|
root: zod_1.z.string().optional().describe('the root directory to use, otherwise default roots are being assumed'),
|
|
cwd: zod_1.z.string().optional().describe('the current working directory to use, otherwise . is being assumed'),
|
|
trace: zod_1.z.boolean().default(false),
|
|
env: zod_1.z.string().default(''),
|
|
profile: zod_1.z.string().default('${OSR_ROOT}/osr-templates/osrl/.osrl.json')
|
|
}, { description: 'IOptionsEach' });
|
|
exports.zodSchema = zodSchema;
|
|
const yargsOptions = (yargs) => (0, osr_commons_1.toYargs)(yargs, (0, exports.zodSchema)());
|
|
exports.yargsOptions = yargsOptions;
|
|
const each = (opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
__1.logger.setSettings({ minLevel: opts.logLevel });
|
|
let items = [];
|
|
let listPath = path.resolve((0, osr_commons_1.resolve)(opts.list));
|
|
let list = null;
|
|
try {
|
|
list = yield (0, _1.parseCustomUrl)(opts.list);
|
|
}
|
|
catch (e) {
|
|
__1.logger.debug(`Error parsing list: ${opts.list}`, e.message);
|
|
}
|
|
if ((0, primitives_1.isArray)(list)) {
|
|
items = list;
|
|
}
|
|
else if ((0, exists_1.sync)(listPath) && (0, osr_commons_1.isFile)(listPath) && path.parse(listPath).ext === '.json') {
|
|
items = (0, read_1.sync)(listPath, 'json') || [];
|
|
}
|
|
else if ((0, osr_commons_2.pathInfo)(opts.list).IS_GLOB) {
|
|
items = (0, osr_commons_2.filesEx)(opts.cwd ? path.resolve((0, osr_commons_1.resolve)(opts.cwd)) : null, opts.list, {
|
|
absolute: false
|
|
}) || [].map((item) => (0, osr_commons_2.forward_slash)(item));
|
|
}
|
|
if (!items || items.length === 0) {
|
|
__1.logger.error('osr-cli::each: invalid list or empty list');
|
|
return;
|
|
}
|
|
items = items.filter((item) => !!item);
|
|
__1.logger.debug(`listPath: ${listPath} : ${items.length} items`, items);
|
|
const profile = (0, profile_1.parseProfile)(opts.profile, { variables: {}, includes: [], env: {} }, { env: opts.env });
|
|
const patchArgs = (obj, changeValueFn) => {
|
|
const ret = Object.assign({}, obj);
|
|
for (const key in ret) {
|
|
if ((0, primitives_1.isString)(ret[key])) {
|
|
ret[key] = changeValueFn(ret[key]);
|
|
}
|
|
}
|
|
[...Object.keys((0, exports.zodSchema)().shape), '_', '$0'].forEach((key) => delete ret[key]);
|
|
return ret;
|
|
};
|
|
const all = yield pMap(items, (KEY) => __awaiter(void 0, void 0, void 0, function* () {
|
|
const variables = Object.assign(Object.assign(Object.assign(Object.assign({ KEY }, config_1.DEFAULT_ROOTS), profile.variables), (0, exists_1.sync)(KEY) ? path.parse(KEY) : {}), { REL: (0, osr_commons_2.forward_slash)(KEY) });
|
|
let args = patchArgs(opts, (value) => (0, osr_commons_1.substitute)(false, value, variables));
|
|
args = Object.keys(args).map((k) => args[k] ? `--${k}="${args[k]}"` : '').filter(Boolean);
|
|
args = args.filter((element) => !!element);
|
|
const cmd = (0, osr_commons_1.substitute)(false, opts.main, variables);
|
|
const cwd = path.resolve((0, osr_commons_1.substitute)(false, opts.cwd || '', variables));
|
|
if (!(0, exists_1.sync)(cwd)) {
|
|
__1.logger.warn(`cwd does not exist: ${cwd}`);
|
|
(0, dir_1.sync)(cwd);
|
|
}
|
|
__1.logger.info(`running ${cmd} in ${cwd}`, args);
|
|
return yield process_1.Helper.run(cwd, cmd, [], [], opts.trace);
|
|
}), { concurrency: 1 });
|
|
opts.log && (0, write_1.sync)(path.resolve((0, osr_commons_1.resolve)(opts.log)), all);
|
|
return all;
|
|
});
|
|
exports.each = each;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9saWIvZWFjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2QkFBdUI7QUFHdkIsNkJBQTRCO0FBQzVCLDhCQUE2QjtBQUU3Qiw0REFBK0Q7QUFDL0QsOENBQWtEO0FBQ2xELGtEQUFzRDtBQUN0RCxnREFBb0Q7QUFDcEQsNENBQWtEO0FBQ2xELDJEQUE4RDtBQUM5RCx5QkFBbUM7QUFDbkMseURBQThFO0FBQzlFLHlEQUFvRjtBQUNwRiw2REFBOEQ7QUFDOUQsNENBQXVDO0FBRXZDLDJCQUE0QjtBQUVyQixNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixHQUFHLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxQixJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxzRUFBc0UsQ0FBQztJQUM1RyxHQUFHLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxvRUFBb0UsQ0FBQztJQUN6RyxLQUFLLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDakMsR0FBRyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLDJDQUEyQyxDQUFDO0NBQzNFLEVBQUUs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
|