Unix permissions using node

Small snippets to get file permissions using node. node.stat returns an object with a field mode. The mode contains the file information in decimal format. Then, from man 2 stat, one get the masks:

0170000   bit mask for the file type bit fields
0140000   socket
0120000   symbolic link
0100000   regular file
0060000   block device
0040000   directory
0020000   character device
0010000   FIFO
0004000   set-user-ID bit
0002000   set-group-ID bit (see below)
0001000   sticky bit (see below)
00700     mask for file owner permissions
00400     owner has read permission
00200     owner has write permission
00100     owner has execute permission
00070     mask for group permissions
00040     group has read permission
00020     group has write permission
00010     group has execute permission
00007     mask for permissions for others (not in group)
00004     others have read permission
00002     others have write permission
00001     others have execute permission

So finally, if one want to know if one can write to a file:

var mode = require('fs').statSync(file).mode;
console.log(
  (mode & 00200) !== 0
  ? 'can write'
  : 'no write permissions'
);