added fs.appendFile support
This commit is contained in:
parent
0355771e92
commit
51c10e0580
52
src/fs.js
52
src/fs.js
|
@ -1714,6 +1714,47 @@ define(function(require) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _appendFile(fs, context, path, data, options, callback) {
|
||||||
|
if(!options) {
|
||||||
|
options = { encoding: 'utf8', flag: 'a' };
|
||||||
|
} else if(typeof options === "function") {
|
||||||
|
options = { encoding: 'utf8', flag: 'a' };
|
||||||
|
} else if(typeof options === "string") {
|
||||||
|
options = { encoding: options, flag: 'a' };
|
||||||
|
}
|
||||||
|
console.log(options);
|
||||||
|
|
||||||
|
if(!nullCheck(path, callback)) return;
|
||||||
|
|
||||||
|
var flags = validate_flags(options.flag || 'a');
|
||||||
|
if(!flags) {
|
||||||
|
callback(new EInvalid('flags is not valid'));
|
||||||
|
}
|
||||||
|
|
||||||
|
data = data || '';
|
||||||
|
if(typeof data === "number") {
|
||||||
|
data = '' + data;
|
||||||
|
}
|
||||||
|
if(typeof data === "string" && options.encoding === 'utf8') {
|
||||||
|
data = new TextEncoder('utf-8').encode(data);
|
||||||
|
}
|
||||||
|
open_file(context, path, flags, function(err, fileNode) {
|
||||||
|
if(err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
var ofd = new OpenFileDescription(fileNode.id, flags, fileNode.size);
|
||||||
|
var fd = fs.allocDescriptor(ofd);
|
||||||
|
console.log(fileNode);
|
||||||
|
write_data(context, ofd, data, 0, data.length, ofd.position, function(err2, nbytes) {
|
||||||
|
if(err2) {
|
||||||
|
return callback(err2);
|
||||||
|
}
|
||||||
|
fs.releaseDescriptor(fd);
|
||||||
|
callback(null);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function _getxattr (context, path, name, callback) {
|
function _getxattr (context, path, name, callback) {
|
||||||
if (!nullCheck(path, callback)) return;
|
if (!nullCheck(path, callback)) return;
|
||||||
|
|
||||||
|
@ -2179,6 +2220,17 @@ define(function(require) {
|
||||||
);
|
);
|
||||||
if(error) callback(error);
|
if(error) callback(error);
|
||||||
};
|
};
|
||||||
|
FileSystem.prototype.appendFile = function(path, data, options, callback_) {
|
||||||
|
var callback = maybeCallback(arguments[arguments.length - 1]);
|
||||||
|
var fs = this;
|
||||||
|
var error = fs.queueOrRun(
|
||||||
|
function() {
|
||||||
|
var context = fs.provider.getReadWriteContext();
|
||||||
|
_appendFile(fs, context, path, data, options, callback);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if(error) callback(error);
|
||||||
|
};
|
||||||
FileSystem.prototype.lseek = function(fd, offset, whence, callback) {
|
FileSystem.prototype.lseek = function(fd, offset, whence, callback) {
|
||||||
callback = maybeCallback(callback);
|
callback = maybeCallback(callback);
|
||||||
var fs = this;
|
var fs = this;
|
||||||
|
|
Loading…
Reference in New Issue