import * as path from 'path' import { sync as read } from "@plastichub/fs/read" import { products, products_test } from './machines' import { productLaserTask, productCADTask } from './product' const getProducts = (branch: string) => { const all = read("./config/machines.json", "json") || {} if(branch){ return all[branch] || [] }else{ return Object.values(all).flat() } } export const grunt = (grunt) => { grunt.initConfig({ pkg: grunt.file.readJSON("package.json"), 'cad': { json: { src: products, output: '${SRC_DIR}/${SRC_NAME}.+(json)' }, html: { src: products, output: '${SRC_DIR}/../resources/${SRC_NAME}.+(html)', }, step: { src: products, output: '${SRC_DIR}/${SRC_NAME}.+(step)' }, bom: { src: products, output: '${SRC_DIR}/../resources/${SRC_NAME}.+(xlsx)' }, one: [grunt.option('product')] }, 'laser': { products: { src: products_test, options: { clear: false, debug: true, verbose: true } } }, sshexec: { update: { debug: true, verbose: true, commands: 'sh update-osr.sh' } } }) grunt.loadNpmTasks('grunt-parallel') grunt.loadNpmTasks("grunt-extend-config") grunt.registerTask('laser', [ 'laser:products' ]) const product_sync_tasks = [] const product_laser_tasks = [] const product_cad_tasks = [] const product_git_tasks = [] const product_all_tasks = [] const productTasks = (items) => { items.forEach((i) => { productCADTask(grunt, i, {}, product_cad_tasks) productLaserTask(grunt, i, {}, product_laser_tasks) }) } const all = getProducts("current") productTasks(all) grunt.registerTask('products_update', [ 'products-cad', 'products-laser' ]) grunt.registerTask('products_sync', [ 'sshexec:update' ]) grunt.registerTask('products_full', [ 'products_update', 'products_sync' ]) require("@plastichub/osr-tasks").initConfig(grunt, {}) }; module.exports = grunt