forked from circlecloud/tera
1
0
Fork 0
tera/src/core/startlib.ts

71 lines
2.3 KiB
TypeScript

/*
* @project: TERA
* @version: Development (beta)
* @license: MIT (not for evil)
* @copyright: Yuriy Ivanov (Vtools) 2017-2019 [progr76@gmail.com]
* Web: https://terafoundation.org
* Twitter: https://twitter.com/terafoundation
* Telegram: https://t.me/terafoundation
*/
var fs = require("fs");
global.GetDataPath = function GetDataPath(name) {
if (global.DATA_PATH.substr(global.DATA_PATH.length - 1, 1) !== "/")
global.DATA_PATH = global.DATA_PATH + "/";
return global.GetNormalPathString(global.DATA_PATH + name);
};
global.GetCodePath = function GetCodePath(name) {
if (global.CODE_PATH.substr(global.CODE_PATH.length - 1, 1) !== "/")
global.CODE_PATH = global.CODE_PATH + "/";
return global.GetNormalPathString(global.CODE_PATH + name);
};
global.GetNormalPathString = function(Str) {
return Str.split("\\").join('/');
};
global.CheckCreateDir = function(Path, bHidden, IsFile) {
Path = global.GetNormalPathString(Path);
if (!fs.existsSync(Path)) {
if (!bHidden)
console.log("Create: " + Path);
var arr = Path.split('/');
var CurPath = arr[0];
if (IsFile) {
arr.length--;
}
for (var i = 1; i < arr.length; i++) {
CurPath += "/" + arr[i];
if (!fs.existsSync(CurPath)) {
fs.mkdirSync(CurPath);
}
}
}
};
global.CopyFiles = CopyFiles;
function CopyFiles(FromPath, ToPath, bRecursive) {
if (fs.existsSync(FromPath)) {
var arr = fs.readdirSync(FromPath);
for (var i = 0; i < arr.length; i++) {
var name1 = FromPath + "/" + arr[i];
var name2 = ToPath + "/" + arr[i];
if (fs.statSync(name1).isDirectory()) {
if (bRecursive) {
if (!fs.existsSync(name2))
fs.mkdirSync(name2);
CopyFiles(name1, name2, bRecursive);
}
}
else {
var data = fs.readFileSync(name1);
var file_handle = fs.openSync(name2, "w");
fs.writeSync(file_handle, data, 0, data.length);
fs.closeSync(file_handle);
}
}
}
};
if (!global.ToLog)
global.ToLog = function(Str) {
console.log(Str);
};