luci-base: add lstat to fs

Add new user and group properties to stat result Object.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
Paul Donald
2026-03-10 18:52:32 +01:00
parent 944cb757bb
commit 8e3bc67c87

View File

@@ -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<LuCI.fs.FileStatEntry>}
* 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.