UNPKG

datamax-cli

Version:

datamax plugin cli

96 lines (86 loc) 2.66 kB
const path = require("path"); const formstream = require("formstream"); var urllib = require("urllib"); const shelljs = require("shelljs"); const chalk = require("chalk"); shelljs.config.verbose = true; shelljs.config.silent = true; const fs = require("fs-extra"); const fs1 = require("fs"); module.exports = function (config, root, args) { let uploadServ = "http://localhost:3001/uploadfile"; if (args != undefined && args.length > 0) { //配置的上传服务器 uploadServ = args[0]; } let PluginName = ""; var fstat, cwd = process.cwd(), source = cwd; console.log("_--------__"); console.log(source); try { fstat = fs.statSync(source); } catch (e) { console.log(chalk.red(`source not found`)); return process.exit(); } if (fstat.isDirectory()) { var configUrl = path.join(source, "/package.json"); try { fstat = fs.statSync(configUrl); } catch (e) { console.log(chalk.red(`package.json not found`)); return process.exit(); } console.log(377777); //打包插件 new Promise((resolve) => { shelljs.exec("npm run build"); console.log(chalk.green("[1]开始打包插件")); resolve(); }).then(() => { console.log(chalk.green(" 打包完毕")); var distDir = path.join(source, "/dist"); try { fstat = fs.statSync(distDir); } catch (e) { console.log(chalk.red(`source not found:${source}`)); return process.exit(); } console.log("文件路径"); console.log(distDir); if (fstat.isDirectory()) { PluginName = fs.readdirSync(distDir)[0]; var distFile = path.join(distDir, `/${PluginName}`); try { fstat = fs.statSync(distFile); } catch (e) { console.log(chalk.red(`${PluginName} 插件不存在`)); return process.exit(); } } console.log(chalk.green("[2]开始上传插件")); const form = formstream(); form.file("file", distFile); // form.field("pluginName", PluginName); var request = require("request"); var formData = { // Pass data via Streams DXplugn: fs1.createReadStream(distFile), }; request.post( { url: uploadServ, formData: formData }, function optionalCallback(err, httpResponse, body) { if (err) { return console.error("upload failed:", err); } console.log("Upload successful! Server responded with:", body); } ); }); } else { console.log(chalk.red("unknow type input source", source)); return process.exit(); } };