115 lines
15 KiB
JavaScript
115 lines
15 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.productGitSyncTask = exports.productBazarTask = exports.productCADTask = exports.productLaserTask = void 0;
|
|
const path = require("path");
|
|
const glob_1 = require("@plastichub/osr-cli-commons/glob");
|
|
const copy_1 = require("@plastichub/fs/copy");
|
|
const remove_1 = require("@plastichub/fs/remove");
|
|
const exists_1 = require("@plastichub/fs/exists");
|
|
const library_1 = require("./library");
|
|
const _1 = require("./");
|
|
const PRODUCT_TEMPLATE = './osr/bazar/root.html';
|
|
const debug = true;
|
|
const verbose = true;
|
|
let DEFAULT_CAD_OUTPUTS = '${SRC_DIR}/${SRC_NAME}.+(json|html|step|x_t)';
|
|
const HTML_DEFAULT_PATH = 'resources/edrawings.html';
|
|
const productLaserTask = (grunt, product, options = {}, product_laser_tasks) => {
|
|
const config = {};
|
|
const slug = path.parse(product).base;
|
|
config[`product-${slug}`] = {
|
|
src: [product],
|
|
options: {
|
|
clear: true,
|
|
debug,
|
|
verbose
|
|
}
|
|
};
|
|
grunt.extendConfig({
|
|
laser: config
|
|
});
|
|
grunt.registerTask(`product-${slug}`, `laser:product-${slug}`);
|
|
product_laser_tasks.push(`laser:product-${slug}`);
|
|
grunt.registerTask(`products-laser`, product_laser_tasks);
|
|
};
|
|
exports.productLaserTask = productLaserTask;
|
|
const productCADTask = (grunt, component, options = {}, cad_tasks) => {
|
|
const config = {};
|
|
const slug = path.parse(component).base;
|
|
component = path.resolve(path.join(process.cwd(), component));
|
|
const rel = (0, library_1.forward_slash)(path.relative(path.resolve('.'), component));
|
|
let glob = `${rel}/cad/*Global*.+(SLDASM)`;
|
|
const filesSolidworks = (0, glob_1.files)(path.resolve('.'), glob);
|
|
if (!filesSolidworks.length) {
|
|
const t = 0;
|
|
}
|
|
config[`component-${slug}`] = {
|
|
src: [`${component}/cad/*Global*.+(SLDASM)`],
|
|
output: DEFAULT_CAD_OUTPUTS,
|
|
options: {
|
|
debug,
|
|
verbose,
|
|
skip: true,
|
|
onNode: (data => {
|
|
try {
|
|
options.debug && _1.logger.info(`Converted ${data.src} to ${data.target}`);
|
|
const parts = path.parse(data.target);
|
|
if (parts.ext === '.html' && parts.name.toLowerCase().indexOf('global') !== -1) {
|
|
const target = path.join(component, HTML_DEFAULT_PATH);
|
|
if ((0, exists_1.sync)(target)) {
|
|
(0, remove_1.sync)(target);
|
|
}
|
|
(0, copy_1.sync)(data.target, target, {});
|
|
}
|
|
}
|
|
catch (error) {
|
|
_1.logger.info(`Error copying ${data.src} to ${HTML_DEFAULT_PATH}`, error);
|
|
}
|
|
})
|
|
}
|
|
};
|
|
grunt.extendConfig({
|
|
cad: config
|
|
});
|
|
grunt.registerTask(`component-${slug}`, `cad:component-${slug}`);
|
|
cad_tasks.push(`cad:component-${slug}`);
|
|
grunt.registerTask(`components-cad`, cad_tasks);
|
|
};
|
|
exports.productCADTask = productCADTask;
|
|
const productBazarTask = (grunt, product, options = {}, product_bazar_tasks) => {
|
|
if (!product) {
|
|
_1.logger.error('Invalid product');
|
|
}
|
|
const config = {};
|
|
const slug = path.parse(product).base;
|
|
config[`product-${slug}`] = {
|
|
src: [PRODUCT_TEMPLATE],
|
|
options: (0, library_1.productContentOptions)(product)
|
|
};
|
|
grunt.extendConfig({
|
|
compile: config
|
|
});
|
|
grunt.registerTask(`product-${slug}`, `compile:product-${slug}`);
|
|
product_bazar_tasks.push(`compile:product-${slug}`);
|
|
grunt.registerTask(`products-bazar`, product_bazar_tasks);
|
|
};
|
|
exports.productBazarTask = productBazarTask;
|
|
const productGitSyncTask = (grunt, component, options = {}, git_tasks) => {
|
|
const config = {};
|
|
const opts = {
|
|
clean: true,
|
|
debug,
|
|
verbose,
|
|
cwd: '${OSR_ROOT}/osr-machines/',
|
|
rel: component.replace('products/', '')
|
|
};
|
|
const slug = path.parse(component).base;
|
|
config[`component-${slug}`] = opts;
|
|
grunt.extendConfig({
|
|
git: config
|
|
});
|
|
grunt.registerTask(`git-component-${slug}`, `git:component-${slug}`);
|
|
git_tasks.push(`git:component-${slug}`);
|
|
grunt.registerTask(`components-git`, git_tasks);
|
|
};
|
|
exports.productGitSyncTask = productGitSyncTask;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhc2tzL3Byb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTRCO0FBRzVCLDJEQUFrRTtBQUVsRSw4Q0FBZ0Q7QUFDaEQsa0RBQWtEO0FBQ2xELGtEQUFzRDtBQUV0RCx1Q0FHa0I7QUFHbEIseUJBQTJCO0FBRTNCLE1BQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUE7QUFFaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFBO0FBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQTtBQUVwQixJQUFJLG1CQUFtQixHQUFHLDhDQUE4QyxDQUFBO0FBQ3hFLE1BQU0saUJBQWlCLEdBQUcsMEJBQTBCLENBQUE7QUFFN0MsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBZSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRTtJQUN2RixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7SUFDakIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUE7SUFFckMsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsR0FBRztRQUN4QixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDZCxPQUFPLEVBQUU7WUFDTCxLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUs7WUFDTCxPQUFPO1NBQ1Y7S0FDSixDQUFBO0lBQ0QsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUNmLEtBQUssRUFBRSxNQUFNO0tBQ2hCLENBQUMsQ0FBQTtJQUNGLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUU5RCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUE7SUFFakQsS0FBSyxDQUFDLFlBQVksQ0FBQyxnQkFB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QUUsQ0FBQztLQUMxQyxDQUFBO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUE7SUFFdkMsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUE7SUFFbEMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUNmLEdBQUcsRUFBRSxNQUFNO0tBQ2QsQ0FBQyxDQUFBO0lBRUYsS0FBSyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUE7SUFFcEUsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUV2QyxLQUFLLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFBO0FBRW5ELENBQUMsQ0FBQTtBQTFCWSxRQUFBLGtCQUFrQixzQkEwQjlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJ1xyXG5cclxuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ0BwbGFzdGljaHViL29zci1jbGktY29tbW9ucy9mcydcclxuaW1wb3J0IHsgZmlsZXMsIHBhdGhJbmZvIH0gZnJvbSAnQHBsYXN0aWNodWIvb3NyLWNsaS1jb21tb25zL2dsb2InXHJcblxyXG5pbXBvcnQgeyBzeW5jIGFzIGNwIH0gZnJvbSAnQHBsYXN0aWNodWIvZnMvY29weSdcclxuaW1wb3J0IHsgc3luYyBhcyBybSB9IGZyb20gJ0BwbGFzdGljaHViL2ZzL3JlbW92ZSdcclxuaW1wb3J0IHsgc3luYyBhcyBleGlzdHMgfSBmcm9tICdAcGxhc3RpY2h1Yi9mcy9leGlzdHMnXHJcblxyXG5pbXBvcnQge1xyXG4gICAgcHJvZHVjdENvbnRlbnRPcHRpb25zLFxyXG4gICAgZm9yd2FyZF9zbGFzaFxyXG59IGZyb20gJy4vbGlicmFyeSdcclxuXHJcblxyXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLydcclxuXHJcbmNvbnN0IFBST0RVQ1RfVEVNUExBVEUgPSAnLi9vc3IvYmF6YXIvcm9vdC5odG1sJ1xyXG5cclxuY29uc3QgZGVidWcgPSB0cnVlXHJcbmNvbnN0IHZlcmJvc2UgPSB0cnVlXHJcblxyXG5sZXQgREVGQVVMVF9DQURfT1VUUFVUUyA9ICcke1NSQ19ESVJ9LyR7U1JDX05BTUV9LisoanNvbnxodG1sfHN0ZXB8eF90KSdcclxuY29uc3QgSFRNTF9ERUZBVUxUX1BBVEggPSAncmVzb3VyY2VzL2VkcmF3aW5ncy5odG1sJ1xyXG5cclxuZXhwb3J0IGNvbnN0IHByb2R1Y3RMYXNlclRhc2sgPSAoZ3J1bnQsIHByb2R1Y3QsIG9wdGlvbnM6IGFueSA9IHt9LCBwcm9kdWN0X2xhc2VyX3Rhc2tzKSA9PiB7XHJcbiAgICBjb25zdCBjb25maWcgPSB7fVxyXG4gICAgY29uc3Qgc2x1ZyA9IHBhdGgucGFyc2UocHJvZHVjdCkuYmFzZVxyXG5cclxuICAgIGNvbmZpZ1tgcHJvZHVjdC0ke3NsdWd9YF0gPSB7XHJcbiAgICAgICAgc3JjOiBbcHJvZHVjdF0sXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICBjbGVhcjogdHJ1ZSxcclxuICAgICAgICAgICAgZGVidWcsXHJcbiAgICAgICAgICAgIHZlcmJvc2VcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBncnVudC5leHRlbmRDb25maWcoe1xyXG4gICAgICAgIGxhc2VyOiBjb25maWdcclxuICAgIH0pXHJcbiAgICBncnVudC5yZWdpc3RlclRhc2soYHByb2R1Y3QtJHtzbHVnfWAsIGBsYXNlcjpwcm9kdWN0LSR7c2x1Z31gKVxyXG5cclxuICAgIHByb2R1Y3RfbGFzZXJfdGFza3MucHVzaChgbGFzZXI6cHJvZHVjdC0ke3NsdWd9YClcclxuXHJcbiAgICBncnVudC5yZWdpc3RlclRhc2soYHByb2R1Y3RzLWxhc2VyYCwgcHJvZHVjdF9sYXNlcl90YXNrcylcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHByb2R1Y3RDQURUYXNrID0gKGdydW50LCBjb21wb25lbnQsIG9wdGlvbnM6IGFueSA9IHt9LCBjYWRfdGFza3MpID0+IHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHt9XHJcbiAgICBjb25zdCBzbHVnID0gcGF0aC5wYXJzZShjb21wb25lbnQpLmJhc2VcclxuXHJcbiAgICBjb21wb25lbnQgPSBwYXRoLnJlc29sdmUocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGNvbXBvbmVudCkpXHJcblxyXG4gICAgY29uc3QgcmVsID0gZm9yd2FyZF9zbGFzaChwYXRoLnJlbGF0aXZlKHBhdGgucmVzb2x2ZSgnLicpLCBjb21wb25lbnQpKVxyXG4gICAgbGV0IGdsb2IgPSBgJHtyZWx9L2NhZC8qR2xvYmFsKi4rKFNMREFTTSlgXHJcbiAgICBjb25zdCBmaWxlc1NvbGlkd29ya3MgPSBmaWxlcyhwYXRoLnJlc29sdmUoJy4nKSwgZ2xvYilcclxuICAgIGlmICghZmlsZXNTb2xpZHdvcmtzLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IHQgPSAwXHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNvbmZpZ1tgY29tcG9uZW50LSR7c2x1Z31gXSA9IHtcclxuICAgICAgICBzcmM6IFtgJHtjb21wb25lbnR9L2NhZC8qR2xvYmFsKi4rKFNMREFTTSlgXSxcclxuICAgICAgICBvdXRwdXQ6IERFRkFVTFRfQ0FEX09VVFBVVFMsXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICBkZWJ1ZyxcclxuICAgICAgICAgICAgdmVyYm9zZSxcclxuICAgICAgICAgICAgc2tpcDp0cnVlLFxyXG4gICAgICAgICAgICBvbk5vZGU6IChkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5kZWJ1ZyAmJiBsb2dnZXIuaW5mbyhgQ29udmVydGVkICR7ZGF0YS5zcmN9IHRvICR7ZGF0YS50YXJnZXR9YClcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGgucGFyc2UoZGF0YS50YXJnZXQpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnRzLmV4dCA9PT0gJy5odG1sJyAmJiBwYXJ0cy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZ2xvYmFsJykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHBhdGguam9pbihjb21wb25lbnQsIEhUTUxfREVGQVVMVF9QQVRIKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihleGlzdHModGFyZ2V0KSl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBybSh0YXJnZXQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY3AoZGF0YS50YXJnZXQsIHRhcmdldCwge30pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgRXJyb3IgY29weWluZyAke2RhdGEuc3JjfSB0byAke0hUTUxfREVGQVVMVF9QQVRIfWAsIGVycm9yKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdydW50LmV4dGVuZENvbmZpZyh7XHJcbiAgICAgICAgY2FkOiBjb25maWdcclxuICAgIH0pXHJcbiAgICBncnVudC5yZWdpc3RlclRhc2soYGNvbXBvbmVudC0ke3NsdWd9YCwgYGNhZDpjb21wb25lbnQtJHtzbHVnfWApXHJcblxyXG4gICAgY2FkX3Rhc2tzLnB1c2goYGNhZDpjb21wb25lbnQtJHtzbHVnfWApXHJcblxyXG4gICAgZ3J1bnQucmVnaXN0ZXJUYXNrKGBjb21wb25lbnRzLWNhZGAsIGNhZF90YXNrcylcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHByb2R1Y3RCYXphclRhc2sgPSAoZ3J1bnQsIHByb2R1Y3QsIG9wdGlvbnM6IGFueSA9IHt9LCBwcm9kdWN0X2JhemFyX3Rhc2tzKSA9PiB7XHJcbiAgICBpZiAoIXByb2R1Y3QpIHtcclxuICAgICAgICBsb2dnZXIuZXJyb3IoJ0ludmFsaWQgcHJvZHVjdCcpXHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWcgPSB7fVxyXG4gICAgY29uc3Qgc2x1ZyA9IHBhdGgucGFyc2UocHJvZHVjdCkuYmFzZVxyXG4gICAgY29uZmlnW2Bwcm9kdWN0LSR7c2x1Z31gXSA9IHtcclxuICAgICAgICBzcmM6IFtQUk9EVUNUX1RFTVBMQVRFXSxcclxuICAgICAgICBvcHRpb25zOiBwcm9kdWN0Q29udGVudE9wdGlvbnMocHJvZHVjdClcclxuICAgIH1cclxuICAgIGdydW50LmV4dGVuZENvbmZpZyh7XHJcbiAgICAgICAgY29tcGlsZTogY29uZmlnXHJcbiAgICB9KVxyXG4gICAgZ3J1bnQucmVnaXN0ZXJUYXNrKGBwcm9kdWN0LSR7c2x1Z31gLCBgY29tcGlsZTpwcm9kdWN0LSR7c2x1Z31gKVxyXG5cclxuICAgIHByb2R1Y3RfYmF6YXJfdGFza3MucHVzaChgY29tcGlsZTpwcm9kdWN0LSR7c2x1Z31gKVxyXG5cclxuICAgIGdydW50LnJlZ2lzdGVyVGFzayhgcHJvZHVjdHMtYmF6YXJgLCBwcm9kdWN0X2JhemFyX3Rhc2tzKVxyXG59XHJcbmV4cG9ydCBjb25zdCBwcm9kdWN0R2l0U3luY1Rhc2sgPSAoZ3J1bnQsIGNvbXBvbmVudCwgb3B0aW9uczogYW55ID0ge30sIGdpdF90YXNrcykgPT4ge1xyXG5cclxuICAgIGNvbnN0IGNvbmZpZyA9IHt9XHJcblxyXG4gICAgY29uc3Qgb3B0cyA9IHtcclxuICAgICAgICBjbGVhbjogdHJ1ZSxcclxuICAgICAgICBkZWJ1ZyxcclxuICAgICAgICB2ZXJib3NlLFxyXG4gICAgICAgIGN3ZDogJyR7T1NSX1JPT1R9L29zci1tYWNoaW5lcy8nLFxyXG4gICAgICAgIHJlbDogY29tcG9uZW50LnJlcGxhY2UoJ3Byb2R1Y3RzLycsICcnKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNsdWcgPSBwYXRoLnBhcnNlKGNvbXBvbmVudCkuYmFzZVxyXG5cclxuICAgIGNvbmZpZ1tgY29tcG9uZW50LSR7c2x1Z31gXSA9IG9wdHNcclxuXHJcbiAgICBncnVudC5leHRlbmRDb25maWcoe1xyXG4gICAgICAgIGdpdDogY29uZmlnXHJcbiAgICB9KVxyXG5cclxuICAgIGdydW50LnJlZ2lzdGVyVGFzayhgZ2l0LWNvbXBvbmVudC0ke3NsdWd9YCwgYGdpdDpjb21wb25lbnQtJHtzbHVnfWApXHJcblxyXG4gICAgZ2l0X3Rhc2tzLnB1c2goYGdpdDpjb21wb25lbnQtJHtzbHVnfWApXHJcblxyXG4gICAgZ3J1bnQucmVnaXN0ZXJUYXNrKGBjb21wb25lbnRzLWdpdGAsIGdpdF90YXNrcylcclxuXHJcbn0iXX0=
|