|
|
@@ -0,0 +1,48 @@
|
|
|
+const { spawn } = require('child_process');
|
|
|
+const path = require('path');
|
|
|
+
|
|
|
+/**
|
|
|
+ * 运行批处理文件并传递压缩文件名作为参数
|
|
|
+ * @param {string} batFilePath - 批处理文件的路径
|
|
|
+ * @param {string} zipFileName - 压缩文件名
|
|
|
+ * @param {function} callback - 回调函数,用于处理输出和错误
|
|
|
+ */
|
|
|
+function runBatchFileWithZip(batFilePath, zipFileName, callback) {
|
|
|
+ // 使用spawn方法启动命令行,并指定批处理文件的路径和参数
|
|
|
+ const child = spawn('cmd.exe', ['/c', batFilePath, zipFileName]);
|
|
|
+
|
|
|
+ // 监听标准输出
|
|
|
+ child.stdout.on('data', (data) => {
|
|
|
+ if (callback) {
|
|
|
+ callback(null, data);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 监听标准错误输出
|
|
|
+ child.stderr.on('data', (data) => {
|
|
|
+ //console.error(`错误输出: ${data}`);
|
|
|
+ if (callback) {
|
|
|
+ callback(new Error(data));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 监听进程退出事件
|
|
|
+ child.on('close', (code) => {
|
|
|
+ if (callback) {
|
|
|
+ callback(code === 0 ? null : new Error(`子进程退出码 ${code}`));
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+if(process.platform === 'win32')
|
|
|
+{
|
|
|
+ let cmd = path.join(__dirname, '../dependences/windows/', 'extract.bat');
|
|
|
+ let gz = path.join(__dirname, '../dependences/windows/', 'windows.tar.gz');
|
|
|
+
|
|
|
+ process.chdir(path.join(__dirname, '../dependences/windows/'));
|
|
|
+ process.stdout.write('Dependent environment initialization ...');
|
|
|
+ runBatchFileWithZip(cmd, gz, (error, data) => {
|
|
|
+ if(!error && !data)console.log('\b\b\bcompleted.');
|
|
|
+ });
|
|
|
+}
|
|
|
+
|