2019-05-07 21:58:58 -04:00
|
|
|
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
|
2019-08-21 20:42:48 -04:00
|
|
|
import { sendSync, sendAsync, msg, flatbuffers } from "./dispatch_flatbuffers";
|
2019-05-07 21:58:58 -04:00
|
|
|
|
|
|
|
function req(
|
|
|
|
path: string,
|
|
|
|
uid: number,
|
|
|
|
gid: number
|
|
|
|
): [flatbuffers.Builder, msg.Any, flatbuffers.Offset] {
|
|
|
|
const builder = flatbuffers.createBuilder();
|
|
|
|
const path_ = builder.createString(path);
|
|
|
|
const inner = msg.Chown.createChown(builder, path_, uid, gid);
|
|
|
|
return [builder, msg.Any.Chown, inner];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Change owner of a regular file or directory synchronously. Unix only at the moment.
|
|
|
|
* @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 {
|
2019-08-21 20:42:48 -04:00
|
|
|
sendSync(...req(path, uid, gid));
|
2019-05-07 21:58:58 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Change owner of a regular file or directory asynchronously. Unix only at the moment.
|
|
|
|
* @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> {
|
2019-08-21 20:42:48 -04:00
|
|
|
await sendAsync(...req(path, uid, gid));
|
2019-05-07 21:58:58 -04:00
|
|
|
}
|