*/
class Tools {
+ const S_IFMT = 170000;
+ const S_IFGITLINK = 160000;
+ const S_IFLNK = 120000;
+ const S_IFREG = 100000;
+ const S_IFDIR = 40000;
+ const S_IFINVALID = 30000;
+ const S_IXUSR = 100;
+
+ public static function get_filetype($mode, $exec = false) {
+ if(!preg_match('/^[0-7]+$/', $mode))
+ return $mode;
+
+ if(($mode & self::S_IFMT) == S_IFGITLINK)
+ return 'submodule';
+ else if(($mode & self::S_IFMT) == S_IFDIR)
+ return 'directory';
+ else if(($mode & self::S_IFMT) == S_IFLNK)
+ return 'symlink';
+ else if(($mode & self::S_IFMT) == S_IFREG) {
+ if($exec && ($mode & self::S_IXUSR))
+ return 'executable';
+ return 'file';
+ } else
+ return 'unknown';
+ }
public static function age_calculate($last_change) {
$result = array();