94 lines
2.2 KiB
JavaScript
94 lines
2.2 KiB
JavaScript
/**
|
|
* 系统配置
|
|
*/
|
|
const os = require('os');
|
|
const process = require('process');
|
|
const path = require("path");
|
|
const fs = require('fs');
|
|
|
|
module.exports = class SystemConfig {
|
|
|
|
constructor() {
|
|
}
|
|
|
|
static isWindows(){
|
|
return os.platform() === 'win32'
|
|
}
|
|
|
|
static isLinux(){
|
|
return os.platform() === 'linux'
|
|
}
|
|
|
|
static getShellEncode(){
|
|
if ( this.isWindows() ) {
|
|
return "GBK"
|
|
} else {
|
|
return "UTF-8"
|
|
}
|
|
}
|
|
|
|
static getLocalKitPath(){
|
|
let path = "./"
|
|
if ( this.isWindows() ) {
|
|
path = require('path').dirname(require.main.filename)
|
|
} else {
|
|
path = process.execPath;
|
|
}
|
|
this.affirmDir(path)
|
|
$logger.debug(`LocalKitPath=${path}`)
|
|
return path;
|
|
}
|
|
|
|
static getLocalStorePath(){
|
|
const path = require("path")
|
|
let dir = path.resolve(this.getLocalKitPath(), ".kit")
|
|
this.affirmDir(dir)
|
|
return dir;
|
|
}
|
|
|
|
static getUserPath() {
|
|
// let userDirectory = '~';
|
|
// if ( this.isWindows() ) {
|
|
// userDirectory = process.env.USERPROFILE;
|
|
// }
|
|
return os.homedir();
|
|
}
|
|
|
|
static getUserConfigPath() {
|
|
const path = require("path")
|
|
const dir = path.resolve( this.getUserPath() , ".kit");
|
|
this.affirmDir(dir)
|
|
return dir;
|
|
}
|
|
|
|
static getUserConfigFilePath() {
|
|
const path = require("path")
|
|
return path.resolve( this.getUserPath() , ".kit", "config.json");
|
|
}
|
|
|
|
static getLogPath() {
|
|
const path = require("path")
|
|
let logs = path.resolve( this.getUserPath() , ".kit", "logs");
|
|
this.affirmDir(logs)
|
|
return logs
|
|
}
|
|
|
|
/**
|
|
* 确保目录存在
|
|
* @param path
|
|
*/
|
|
static affirmDir(path){
|
|
// 检查文件夹是否存在
|
|
const exists = fs.existsSync(path);
|
|
|
|
if (! exists) {
|
|
// 文件夹不存在
|
|
try {
|
|
fs.mkdirSync(path, { recursive: true });
|
|
} catch (err) {
|
|
// 处理错误
|
|
$logger.error(`affirmDir ${path} error ${ err }`);
|
|
}
|
|
}
|
|
}
|
|
} |