});
}
+function read_entire_file(filename, callback) {
+ fs.open(filename, 'r', function(err, fd) {
+ if (err) throw err;
+ fs.fstat(fd, function(err, st) {
+ if (err) throw err;
+ var buffer = new Buffer(1048576);
+ fs.read(fd, buffer, 0, 1048576, 0, function(err, bytesRead, buffer) {
+ if (err) throw err;
+ fs.close(fd, function() {
+ var contents = buffer.toString('utf8', 0, bytesRead);
+ callback(contents, st.mtime.getTime());
+ });
+ });
+ });
+ });
+}
+
var reread_file = function(event, filename) {
if (filename != path.basename(json_filename)) {
return;
json_lock = 1;
console.log("Rereading " + json_filename);
- fs.open(json_filename, 'r', function(err, fd) {
- if (err) throw err;
- fs.fstat(fd, function(err, st) {
- if (err) throw err;
- var buffer = new Buffer(1048576);
- fs.read(fd, buffer, 0, 1048576, 0, function(err, bytesRead, buffer) {
- if (err) throw err;
- fs.close(fd, function() {
- var new_json_contents = buffer.toString('utf8', 0, bytesRead);
- replace_json(new_json_contents, st.mtime.getTime());
- });
- });
- });
+ read_entire_file(json_filename, function(new_json_contents, mtime) {
+ replace_json(new_json_contents, mtime);
});
if (touch_timer !== undefined) {