@plugjs/plug
Version:
PlugJS Build System ===================
26 lines (25 loc) • 846 B
JavaScript
// plugs/exec.ts
import { install } from "../pipe.mjs";
import { execChild } from "../utils/exec.mjs";
import { parseOptions } from "../utils/options.mjs";
install("exec", class Exec {
_cmd;
_args;
_options;
constructor(...args) {
const { params, options } = parseOptions(args, {});
const [_cmd, ..._args] = params;
this._cmd = _cmd;
this._args = _args;
this._options = options;
}
async pipe(files, context) {
const { relativePaths = true, ...options } = this._options;
if (!options.cwd) options.cwd = files.directory;
const params = [...relativePaths ? files : files.absolutePaths()];
if (options.shell) params.forEach((s, i, a) => a[i] = JSON.stringify(s));
await execChild(this._cmd, [...this._args, ...params], options, context);
return files;
}
});
//# sourceMappingURL=exec.mjs.map