/var/www/html_it/wp-content/plugins/loco-translate/src/fs/FileMode.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/**
 * Object representing a file's permission bits
 */
class Loco_fs_FileMode {
    
    
/**
     * inode protection mode
     * @var int
     */
    
private $i;


    
/**
     * Instantiate from integer file mode
     * @param int
     */
    
public function __construct$mode ){
        
$this->= (int) $mode;
    }


    
/**
     * @return string
     */
    
public function __toString(){
        return 
sprintf('%03o'$this->07777 );
    }


    
/**
     * rwx style friendly formatting
     * @return string
     */
    
public function format(){
        
$mode $this->i;
        
$setuid $mode 04000;
        
$setgid $mode 02000;
        
$sticky $mode 01000;
        return 
            
$this->type().
            
            ( 
$mode 0400 'r' '-' ).
            ( 
$mode 0200 'w' '-' ).
            ( 
$mode 0100 ? ($setuid?'s':'x') : ($setuid?'S':'-') ).

            ( 
$mode 0040 'r' '-' ).
            ( 
$mode 0020 'w' '-' ).
            ( 
$mode 0010 ? ($setgid?'s':'x') : ($setgid?'S':'-') ).

            ( 
$mode 0004 'r' '-' ).
            ( 
$mode 0002 'w' '-' ).
            ( 
$mode 0001 ? ($sticky?'t':'x') : ($sticky?'T':'-') );
    }



    
/**
     * File type bit field:
     * http://man7.org/linux/man-pages/man2/stat.2.html
     */
    
public function type(){
        
$mode $this->0170000;
        switch( 
$mode ){
        case 
0010000:
            return 
'-';
        case 
0040000:
            return 
'd';
        case 
0120000:
            return 
'l';
        case 
0140000:
            return 
's';
        case 
0060000:
            return 
'c';
        default:
            return 
'-';
        }
    }
    
}