添加 kit 子目录

This commit is contained in:
Cheney
2024-03-07 15:50:13 +08:00
parent e0c2ab8c1e
commit 5fd50792a0
24 changed files with 3143 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
const fs = require("fs")
const os = require("os")
const path = require("path");
// 废弃,权限问题难以处理
// const KIT_HOME = "C:\\Program Files\\kit"
// const HOME = "C:\\Program Files\\kit\\.kit"
const KIT_HOME = path.resolve(os.homedir(), "AppData", "Local", "kit")
const HOME = path.resolve(os.homedir(), "AppData", "Local", "kit", ".kit")
function getModuleInfo(id){
let homeDir = path.resolve(HOME, "modules", id)
if ( "kit" === id ) {
homeDir = KIT_HOME;
}
if ( ! fs.existsSync( homeDir ) ) {
fs.mkdirSync( homeDir, { recursive : true } )
return {
HOME, KIT_HOME, exist : false, homeDir
}
}
let versionFile = path.resolve(homeDir, "version")
if ( ! fs.existsSync( versionFile ) ) {
return {
HOME, KIT_HOME, exist : true, homeDir
}
}
return {
HOME, KIT_HOME, exist : true, version : fs.readFileSync(versionFile, "UTF-8"), homeDir
}
}
module.exports = { getModuleInfo }
+40
View File
@@ -0,0 +1,40 @@
async function killport(port) {
$logger.info(`kill process on port ${port}`);
const util = require('util');
const exec = util.promisify(require('child_process').exec);
try {
// 查 PID
let { stdout : stdout1 } = await exec(`netstat -ano | findstr "LISTENING" | findstr /C:":${port} "`)
const output = stdout1.split('\n');
const outputLines = output[0].trim().split(' ')
const pid = outputLines[outputLines.length - 1];
$logger.debug(`绑定端口号 ${port} 的进程 PID=${pid}`)
// 查进程信息
let { stdout : stdout2 } = await exec(`tasklist /FI "PID eq ${pid}" /V /FO CSV`);
const tasklistOutput = stdout2.trim();
const processInfo = tasklistOutput.split('\n')[1].split('","');
const processName = processInfo[0].slice(1) ;
$logger.info(`绑定端口号=${port}; 进程 PID=${pid}; 程序=${processName};`);
// Kill 进程
await exec(`taskkill /PID ${pid} /F`)
} catch (e) {
if ( 1 === e.code ) {
$logger.error("此端口未被使用,或清理进程失败。")
return
}
}
}
module.exports = {
killport
}