mrfrys-node-server/utils/utils.js
YourFriendlyNeighborhoodDealer e5fd0aba13 utils.js refactor
2019-08-14 10:36:24 +02:00

98 lines
2.3 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('../utils/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
}