diff --git a/modules/luci-base/htdocs/luci-static/resources/fs.js b/modules/luci-base/htdocs/luci-static/resources/fs.js index 03048f4aaf..20213bdbd3 100644 --- a/modules/luci-base/htdocs/luci-static/resources/fs.js +++ b/modules/luci-base/htdocs/luci-static/resources/fs.js @@ -17,6 +17,9 @@ * @property {number} inode - Inode number * @property {number} uid - Numeric owner id * @property {number} gid - Numeric group id + * @property {string} user - User name of owner + * @property {string} group - Group name of owner + * @property {Object?} target - a dictionary of properties of any symlink target for `list` operation result entries */ /** @@ -40,6 +43,12 @@ const callFileStat = rpc.declare({ params: [ 'path' ] }); +const callFileLStat = rpc.declare({ + object: 'file', + method: 'lstat', + params: [ 'path' ] +}); + const callFileRead = rpc.declare({ object: 'file', method: 'read', @@ -187,6 +196,23 @@ var FileSystem = baseclass.extend(/** @lends LuCI.fs.prototype */ { return callFileStat(path).then(handleRpcReply.bind(this, { '': {} })); }, + /** + * Return symlink aware file stat information on the specified path. This + * call differs from stat in that it gives information about the symlink + * instead of following the symlink, whereby size is the length of the + * string of the symlink target path and file name. + * + * @param {string} path + * The filesystem path to lstat. + * + * @returns {Promise} + * Returns a promise resolving to a stat detail object or + * rejecting with an error stating the failure reason. + */ + lstat(path) { + return callFileLStat(path).then(handleRpcReply.bind(this, { '': {} })); + }, + /** * Read the contents of the given file and return them. * Note: this function is unsuitable for obtaining binary data.