mrfrys-node-server/utils/utils.js

79 lines
1.9 KiB
JavaScript

module.exports = {
ReadFile: ReadFile,
WriteFile: WriteFile,
writeFileAsync: WriteFileAsync,
AppendToFile: AppendToFile,
Beep: Beep,
WriteBackup: WriteBackup,
FileExists: FileExists,
CreatePath: CreatePath
}
var fs = require('fs')
var logger = require('../utils/logger.js')
const dataFile = './public/data.json'
function ReadFile (name) {
if (!FileExists(name)) { throw new Error('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)
}
}