in src/main/java/org/apache/netbeans/nbpackage/ArchiveUtils.java [479:520]
private static int getUnixMode(Path file) throws IOException {
PosixFileAttributeView fileAttributeView = Files.getFileAttributeView(file, PosixFileAttributeView.class, NOFOLLOW_LINKS);
if (fileAttributeView == null) {
if (Files.isSymbolicLink(file)) {
return DEFAULT_LINK_MODE;
} else if (Files.isDirectory(file)) {
return DEFAULT_DIRECTORY_MODE;
}
return DEFAULT_FILE_MODE;
}
int mode = 0;
Set<PosixFilePermission> permissions = fileAttributeView.readAttributes().permissions();
if (permissions.contains(PosixFilePermission.OWNER_READ)) {
mode |= OWNER_READ_BIT_MASK;
}
if (permissions.contains(PosixFilePermission.OWNER_WRITE)) {
mode |= OWNER_WRITE_BIT_MASK;
}
if (permissions.contains(PosixFilePermission.OWNER_EXECUTE)) {
mode |= OWNER_EXECUTE_BIT_MASK;
}
if (permissions.contains(PosixFilePermission.GROUP_READ)) {
mode |= GROUP_READ_BIT_MASK;
}
if (permissions.contains(PosixFilePermission.GROUP_WRITE)) {
mode |= GROUP_WRITE_BIT_MASK;
}
if (permissions.contains(PosixFilePermission.GROUP_EXECUTE)) {
mode |= GROUP_EXECUTE_BIT_MASK;
}
if (permissions.contains(PosixFilePermission.OTHERS_READ)) {
mode |= OTHERS_READ_BIT_MASK;
}
if (permissions.contains(PosixFilePermission.OTHERS_WRITE)) {
mode |= OTHERS_WRITE_BIT_MASK;
}
if (permissions.contains(PosixFilePermission.OTHERS_EXECUTE)) {
mode |= OTHERS_EXECUTE_BIT_MASK;
}
// LOG.log(System.Logger.Level.TRACE, "Unix mode of file=" + file + ", mode=" + Integer.toOctalString(mode) + ", permissions=" + permissions);
return mode;
}