in plugins/docker/component-image/src/main/java/co/elastic/gradle/dockercomponent/JibActions.java [376:400]
private static FilePermissions getJibFilePermission(Path sourcePath, AbsoluteUnixPath target) {
try {
return FilePermissions.fromPosixFilePermissions(Files.getPosixFilePermissions(sourcePath));
} catch (UnsupportedOperationException e) {
Set<PosixFilePermission> permissions = new HashSet<>();
File sourceFile = sourcePath.toFile();
if (sourceFile.canRead()) {
permissions.add(PosixFilePermission.OWNER_READ);
permissions.add(PosixFilePermission.GROUP_READ);
permissions.add(PosixFilePermission.OTHERS_READ);
}
if (sourceFile.canWrite()) {
permissions.add(PosixFilePermission.OWNER_WRITE);
permissions.add(PosixFilePermission.GROUP_WRITE);
}
if (sourceFile.canExecute() || sourceFile.isDirectory()) {
permissions.add(PosixFilePermission.OWNER_EXECUTE);
permissions.add(PosixFilePermission.GROUP_EXECUTE);
permissions.add(PosixFilePermission.OTHERS_EXECUTE);
}
return FilePermissions.fromPosixFilePermissions(permissions);
} catch (IOException | SecurityException e) {
throw new GradleException("Error while detecting permissions for " + sourcePath.toString(), e);
}
}