V0.1 发布
This commit is contained in:
Generated
+1343
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "backend",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "src/main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"dev" : "bun src/main.js",
|
||||
"build": "pkg src/main.js --targets node18-win-x64 --output PFakeUKey-x86_64-pc-windows-msvc.exe"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"body-parser": "^1.20.2",
|
||||
"cors": "^2.8.5",
|
||||
"express": "^4.19.2",
|
||||
"kill-port-process": "^3.2.1",
|
||||
"rimraf": "^5.0.10",
|
||||
"sm-crypto": "^0.3.13"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
/**
|
||||
* 配置项
|
||||
* windows 默认存储在用户 home 目录的 AppData\Local 下的 PFakeUKey 目录
|
||||
* linux 默认存贮在用户 home 目录的 .PFakeUKey 目录
|
||||
*/
|
||||
const os = require("os")
|
||||
const path = require("path")
|
||||
const fs = require("fs")
|
||||
const { rimraf, rimrafSync, native, nativeSync } = require('rimraf')
|
||||
const defPIN = "12345678"
|
||||
|
||||
// 默认配置
|
||||
let configMap = {
|
||||
}
|
||||
|
||||
// 获取操作系统的名称
|
||||
const platform = os.platform();
|
||||
let baseDir = undefined
|
||||
const userHomeDir = os.homedir();
|
||||
|
||||
// 检查操作系统类型
|
||||
if (platform === 'win32') {
|
||||
console.log('操作系统是 Windows');
|
||||
baseDir = path.resolve(userHomeDir, "AppData/Local/PFakeUKey")
|
||||
} else if (platform === 'linux') {
|
||||
console.log('操作系统是 Linux');
|
||||
baseDir = path.resolve(userHomeDir, ".PFakeUKey")
|
||||
} else {
|
||||
console.log('暂不支持操作系统 ' + platform );
|
||||
process.exit(-1)
|
||||
}
|
||||
|
||||
// 检查目录是否存在
|
||||
// 如果目录不存在创建目录
|
||||
if (!fs.existsSync(baseDir)) {
|
||||
// 使用递归创建目录
|
||||
fs.mkdirSync(baseDir, { recursive: true });
|
||||
console.log(`目录 ${baseDir} 创建成功`);
|
||||
} else {
|
||||
console.log(`目录 ${baseDir} 已存在,无需创建`);
|
||||
}
|
||||
|
||||
const configFile = path.resolve(baseDir, "config.json");
|
||||
// 判断文件是否存在
|
||||
// 如果存在读取
|
||||
try {
|
||||
if ( fs.existsSync( configFile ) ) {
|
||||
let json = fs.readFileSync(configFile, "UTF-8")
|
||||
configMap = JSON.parse(json);
|
||||
} else {
|
||||
throw "unexists"
|
||||
}
|
||||
} catch ( e ) {
|
||||
// 如果 不存在/读取异常 用默认值填充
|
||||
fs.writeFileSync(configFile, JSON.stringify( configMap, null, 4 ))
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
||||
getFakeUKeyDir(){
|
||||
let ukeyDir = path.resolve(baseDir, "ukeys")
|
||||
if ( !fs.existsSync(ukeyDir) ) {
|
||||
fs.mkdirSync(ukeyDir, { recursive: true });
|
||||
// 初始化 7 个 key
|
||||
for ( let i = 0 ; i < 7 ; i++ ) {
|
||||
let ukey = path.resolve(ukeyDir, "FKey-" + (i + 1));
|
||||
fs.mkdirSync(ukey);
|
||||
fs.mkdirSync(path.resolve(ukey, "root"));
|
||||
fs.writeFileSync(path.resolve(ukey, "pin.txt"), defPIN)
|
||||
}
|
||||
}
|
||||
return ukeyDir;
|
||||
},
|
||||
newFakeUKey(name){
|
||||
let ukeyDir = this.getFakeUKeyDir();
|
||||
let ukey = path.resolve(ukeyDir, name ? name : "FKey-" + (new Date().getTime()));
|
||||
fs.mkdirSync(ukey);
|
||||
fs.mkdirSync(path.resolve(ukey, "root"));
|
||||
fs.writeFileSync(path.resolve(ukey, "pin.txt"), defPIN)
|
||||
return ukey;
|
||||
},
|
||||
delFakeUKey(name){
|
||||
let ukeyDir = this.getFakeUKeyDir();
|
||||
let ukey = path.resolve(ukeyDir, name);
|
||||
rimrafSync(ukey);
|
||||
},
|
||||
getConfig(key) {
|
||||
return configMap[key]
|
||||
},
|
||||
|
||||
setConfig(key, value) {
|
||||
configMap[key] = value
|
||||
fs.writeFileSync(configFile, JSON.stringify( configMap, null, 4 ))
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user