From 96f3e3d16220ee514ee16a43a47f8e669fc25cf0 Mon Sep 17 00:00:00 2001 From: pk910 Date: Fri, 15 Feb 2013 06:00:58 +0100 Subject: [PATCH] added get_filetype method to Tools.class.php --- htdocs/lib/Tools.class.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/htdocs/lib/Tools.class.php b/htdocs/lib/Tools.class.php index d7f9075..6f28961 100644 --- a/htdocs/lib/Tools.class.php +++ b/htdocs/lib/Tools.class.php @@ -17,6 +17,31 @@ */ 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(); -- 2.20.1