module.exports = { ReadFile: ReadFile, WriteFile: WriteFile, writeFileAsync: WriteFileAsync, AppendToFile: AppendToFile, Beep: Beep, WriteBackup: WriteBackup, FileExists: FileExists, CreatePath: CreatePath, WatchFile: WatchFile } 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 WatchFile (file, callback) { if (FileExists(file)) { fs.watchFile(file, (curr, prev) => { fs.readFile(file, 'utf8', (err, data) => { if (err) { // console.log(err) } else { callback(data) } }) }) } else { console.log(file + ' does not eadjsalék') setTimeout(() => { WatchFile(file) }, 1000) } } 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) } }