mrfrys-node-server/utils/utils.js
YourFriendlyNeighborhoodDealer 0d8c1c154a Moving stuff around
2019-08-14 10:27:31 +02:00

109 lines
2.2 KiB
JavaScript

module.exports = {
ReadFile: ReadFile,
WriteFile: WriteFile,
writeFileAsync: WriteFileAsync,
AppendToFile: AppendToFile,
Beep: Beep,
WriteBackup: WriteBackup,
FileExists: FileExists,
CreatePath: CreatePath,
GetAllFilesFromFolder: GetAllFilesFromFolder
};
var fs = require('fs');
var logger = require('./logger.js');
const recievedFile = "stats/recieved";
const manFile = "public/man.html";
const logFile = "stats/logs";
const dataFile = "public/data.json";
function ReadFile(name) {
if (!FileExists(name))
throw "No such file: " + name;
return fs.readFileSync(name, "utf8");
}
function FileExists(path) {
return fs.existsSync(path);
}
function CreatePath(path, onlyPath) {
if (FileExists(path))
return;
var p = path.split("/");
var currDir = p[0];
for (var i = 1; i < p.length; i++) {
if (currDir != "" && !fs.existsSync(currDir)) {
try {
fs.mkdirSync(currDir);
} catch (e) { console.log("Failed to make " + currDir + " directory... "); }
}
currDir += "/" + p[i];
}
if (onlyPath == undefined || onlyPath == false)
fs.writeFileSync(path, "");
else
fs.mkdirSync(path);
}
function WriteFile(content, path) {
CreatePath(path);
fs.writeFileSync(path, content);
}
function WriteFileAsync(content, path) {
CreatePath(path);
fs.writeFile(path, content, function(err) {
if (err) {
logger.Log("Error writing file: " + path + " (sync)", logger.GetColor("redbg"));
}
});
}
function AppendToFile(data, file) {
CreatePath(file);
fs.appendFile(file, "\n" + data, function(err) {
if (err)
logger.Log("Error writing log file: " + file + " (sync)", logger.GetColor("redbg"));
});
}
function Beep() {
try {
process.stdout.write('\x07');
} catch (e) {
console.log("error beepin");
}
}
function WriteBackup() {
try {
WriteFileAsync(ReadFile(dataFile), 'public/backs/data_' + new Date().toString());
} catch (e) {
logger.Log("Error backing up data json file!", logger.GetColor("redbg"));
console.log(e);
}
}
function GetAllFilesFromFolder(dir) {
var results = [];
fs.readdirSync(dir).forEach(function(file) {
file = dir + '/' + file;
var stat = fs.statSync(file);
if (stat && stat.isDirectory()) {
results = results.concat(_getAllFilesFromFolder(file));
} else results.push(file);
});
return results;
}