summaryrefslogtreecommitdiff
path: root/cli/js/ops/fs/chown.ts
blob: 6f871f31333f5161336f7f8bb8eecf16de8abe4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { sendSync, sendAsync } from "../dispatch_json.ts";

/** Synchronously change owner of a regular file or directory. Linux/Mac OS
 * only at the moment.
 *
 * Requires `allow-write` permission.
 *
 * @param path path to the file
 * @param uid user id of the new owner
 * @param gid group id of the new owner
 */
export function chownSync(path: string, uid: number, gid: number): void {
  sendSync("op_chown", { path, uid, gid });
}

/** Change owner of a regular file or directory. Linux/Mac OS only at the
 * moment.
 *
 * Requires `allow-write` permission.
 *
 * @param path path to the file
 * @param uid user id of the new owner
 * @param gid group id of the new owner
 */
export async function chown(
  path: string,
  uid: number,
  gid: number
): Promise<void> {
  await sendAsync("op_chown", { path, uid, gid });
}