forked from denoland/deno
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
) Closes denoland#21260. Part of denoland#18218. Implements `node:fs.lchown`, and enables the node_compat test for it. The test uses `process.getegid`, which we didn't have implemented, so I went ahead and implemented that as well to get the test working.
- Loading branch information
1 parent
9fc644c
commit d439286
Showing
14 changed files
with
310 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. | ||
|
||
// TODO(petamoriken): enable prefer-primordials for node polyfills | ||
// deno-lint-ignore-file prefer-primordials | ||
|
||
import { | ||
type CallbackWithError, | ||
makeCallback, | ||
} from "ext:deno_node/_fs/_fs_common.ts"; | ||
import { | ||
getValidatedPath, | ||
kMaxUserId, | ||
} from "ext:deno_node/internal/fs/utils.mjs"; | ||
import * as pathModule from "node:path"; | ||
import { validateInteger } from "ext:deno_node/internal/validators.mjs"; | ||
import type { Buffer } from "node:buffer"; | ||
import { promisify } from "ext:deno_node/internal/util.mjs"; | ||
import { op_node_lchown, op_node_lchown_sync } from "ext:core/ops"; | ||
|
||
/** | ||
* Asynchronously changes the owner and group | ||
* of a file, without following symlinks. | ||
*/ | ||
export function lchown( | ||
path: string | Buffer | URL, | ||
uid: number, | ||
gid: number, | ||
callback: CallbackWithError, | ||
) { | ||
callback = makeCallback(callback); | ||
path = getValidatedPath(path).toString(); | ||
validateInteger(uid, "uid", -1, kMaxUserId); | ||
validateInteger(gid, "gid", -1, kMaxUserId); | ||
|
||
op_node_lchown(pathModule.toNamespacedPath(path), uid, gid).then( | ||
() => callback(null), | ||
callback, | ||
); | ||
} | ||
|
||
export const lchownPromise = promisify(lchown) as ( | ||
path: string | Buffer | URL, | ||
uid: number, | ||
gid: number, | ||
) => Promise<void>; | ||
|
||
/** | ||
* Synchronously changes the owner and group | ||
* of a file, without following symlinks. | ||
*/ | ||
export function lchownSync( | ||
path: string | Buffer | URL, | ||
uid: number, | ||
gid: number, | ||
) { | ||
path = getValidatedPath(path).toString(); | ||
validateInteger(uid, "uid", -1, kMaxUserId); | ||
validateInteger(gid, "gid", -1, kMaxUserId); | ||
|
||
op_node_lchown_sync(pathModule.toNamespacedPath(path), uid, gid); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.