datamax-cli
Version:
datamax plugin cli
96 lines (86 loc) • 2.66 kB
JavaScript
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();
}
};