setPermissions method

Future<void> setPermissions({
  1. required String filepath,
  2. required Iterable<FileStatPermission> owner,
  3. required Iterable<FileStatPermission> group,
  4. required Iterable<FileStatPermission> other,
})

Implementation

Future<void> setPermissions({
  required String filepath,
  required Iterable<FileStatPermission> owner,
  required Iterable<FileStatPermission> group,
  required Iterable<FileStatPermission> other,
}) async {
  final octalMode =
      owner.toOctalMode() + group.toOctalMode() + other.toOctalMode();

  final res = await runAsync([octalMode, filepath]);
  if (0 != res.exitCode) {
    throw CliResultException(
      message: "Failed to set the permissions of '$filepath' to $octalMode",
      exitCode: res.exitCode,
      stderr: res.stderr,
    );
  }
}