UNPKG

@ibm-adw/skill-toolkit

Version:

Developing your own skills with IBM Automation Digital Worker Skill Toolkit

73 lines (57 loc) 3.1 kB
#! /usr/bin/env node /* Licensed Materials - Property of IBM 5737-I23 Copyright IBM Corp. 2019. All Rights Reserved. U.S. Government Users Restricted Rights: Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ const { generateReadMe } = require('./generator/readme-generator'); const { generateDoc } = require('./generator/skill-documentation-generator'); const { generatePackage } = require('./generator/package-generator'); const { generateSpec } = require('./generator/skill-spec-generator'); const fs = require('fs'); const pathModule = require('path'); // Write to file const writeToFile = (fileName, data) => { fs.writeFileSync(fileName, data); }; const writeToJsonFile = (fileName, jsonObject) => { writeToFile(fileName, JSON.stringify(jsonObject, null, 4)); }; // Copy file const copyFile = (sourceFile, destinationFile) => { fs.copyFileSync(sourceFile, destinationFile); }; // Create folder const createFolder = (pathFolder) => { if (!fs.existsSync(pathFolder)) { fs.mkdirSync(pathFolder); } }; // Main: generate all files const generateAllFiles = async (path, skillProjectRepo, skillData, sample) => { createFolder(path + '/nls'); createFolder(path + '/tests'); writeToJsonFile(path + '/package.json', generatePackage(skillData, sample)); writeToJsonFile(path + '/skill-spec.json', generateSpec(skillData, sample)); writeToFile(path + '/README.md', generateReadMe(skillProjectRepo, skillData)); writeToFile(path + '/skill-documentation.md', generateDoc(skillProjectRepo, skillData, sample)); copyFile(pathModule.resolve(__dirname, '../resources/.gitignore-example'), path + '/.gitignore'); copyFile(pathModule.resolve(__dirname, '../resources/.npmignore-example'), path + '/.npmignore'); copyFile(pathModule.resolve(__dirname, '../resources/.eslintrc-example.json'), path + '/.eslintrc.json'); copyFile(pathModule.resolve(__dirname, '../resources/DOCUMENTATION.md'), path + '/DOCUMENTATION.md'); const folder = ( sample ? 'example' : 'base'); copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/skill-config.js'), path + '/skill-config.js'); copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/skill-config-test.js'), path + '/tests/skill-config.test.js'); copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/skill-api.js'), path + '/skill-api.js'); copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/skill-api-test.js'), path + '/tests/skill-api.test.js'); copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/en.json'), path + '/nls/en.json'); if (sample) { createFolder(path + '/tests/resources'); copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/test-resources/data.html'), path + '/tests/resources/data.html'); copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/test-resources/data_empty.html'), path + '/tests/resources/data_empty.html'); } }; module.exports = { generateAllFiles };