From aa66f7f32ffa08b3d592031200cc64e37d71eb15 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 18 Jan 2013 07:28:38 -0500 Subject: [PATCH] minor changes --- lib/server/ischanged.js | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lib/server/ischanged.js diff --git a/lib/server/ischanged.js b/lib/server/ischanged.js new file mode 100644 index 00000000..8fb17504 --- /dev/null +++ b/lib/server/ischanged.js @@ -0,0 +1,77 @@ +(function(){ + 'use strict'; + + var main = require('./main'), //global.cloudcmd.main, + DIR = main.DIR, + + fs = main.fs, + path = main.path, + Util = main.util, + + /* object contains hashes of files*/ + CHANGESNAME = DIR + 'changes', + CHANGES_JSON = CHANGESNAME + '.json', + + Times = main.require(CHANGESNAME) || [], + TimesChanged; + + function isFileChanged(pFileName, pLastFile_b, pCallBack){ + var lReadedTime; + + var i, n = Times.length; + for(i = 0; i < n; i++){ + var lData = Times[i]; + + /* if founded row with file name - save hash */ + if(lData.name === pFileName){ + lReadedTime = lData.time; + break; + } + } + + fs.stat(pFileName, function(pError, pStat){ + var lTimeChanged; + + if(!pError){ + var lFileTime = pStat.mtime.getTime(); + + if(lReadedTime !== lFileTime){ + Times[i] = { + name: pFileName, + time: lFileTime + }; + + lTimeChanged = + TimesChanged = true; + } + + if(pLastFile_b && TimesChanged) + writeFile(CHANGES_JSON, Util.stringifyJSON(Times)); + } + else{ + Util.log(pError); + lTimeChanged = false; + } + + Util.exec(pCallBack, lTimeChanged); + }); + } + + /* + * Функция записывает файла + * и выводит ошибку или сообщает, + * что файл успешно записан + */ + function writeFile(pFileName, pData){ + fs.writeFile(pFileName, pData, function(pError){ + if(pError) + Util.log(pError); + else + Util.log('minify: file ' + path.basename(pFileName) + ' writed...'); + }); + } + + isFileChanged(DIR + 'favicon.ico', true, function(pData){ + console.log(pData) + }); +})(); \ No newline at end of file