Vendor bunch upload of nelexa library
This commit is contained in:
108
vendor/nelexa/zip/src/Util/FileAttribUtil.php
vendored
Normal file
108
vendor/nelexa/zip/src/Util/FileAttribUtil.php
vendored
Normal file
@ -0,0 +1,108 @@
|
||||
<?php
|
||||
|
||||
namespace PhpZip\Util;
|
||||
|
||||
use PhpZip\Constants\DosAttrs;
|
||||
use PhpZip\Constants\UnixStat;
|
||||
|
||||
/**
|
||||
* Class FileAttribUtil.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class FileAttribUtil implements DosAttrs, UnixStat
|
||||
{
|
||||
/**
|
||||
* Get DOS mode,.
|
||||
*
|
||||
* @param int $xattr
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getDosMode($xattr)
|
||||
{
|
||||
$xattr = (int) $xattr;
|
||||
|
||||
$mode = (($xattr & self::DOS_DIRECTORY) === self::DOS_DIRECTORY) ? 'd' : '-';
|
||||
$mode .= (($xattr & self::DOS_ARCHIVE) === self::DOS_ARCHIVE) ? 'a' : '-';
|
||||
$mode .= (($xattr & self::DOS_READ_ONLY) === self::DOS_READ_ONLY) ? 'r' : '-';
|
||||
$mode .= (($xattr & self::DOS_HIDDEN) === self::DOS_HIDDEN) ? 'h' : '-';
|
||||
$mode .= (($xattr & self::DOS_SYSTEM) === self::DOS_SYSTEM) ? 's' : '-';
|
||||
$mode .= (($xattr & self::DOS_LABEL) === self::DOS_LABEL) ? 'l' : '-';
|
||||
|
||||
return $mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $permission
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getUnixMode($permission)
|
||||
{
|
||||
$mode = '';
|
||||
$permission = (int) $permission;
|
||||
switch ($permission & self::UNX_IFMT) {
|
||||
case self::UNX_IFDIR:
|
||||
$mode .= 'd';
|
||||
break;
|
||||
|
||||
case self::UNX_IFREG:
|
||||
$mode .= '-';
|
||||
break;
|
||||
|
||||
case self::UNX_IFLNK:
|
||||
$mode .= 'l';
|
||||
break;
|
||||
|
||||
case self::UNX_IFBLK:
|
||||
$mode .= 'b';
|
||||
break;
|
||||
|
||||
case self::UNX_IFCHR:
|
||||
$mode .= 'c';
|
||||
break;
|
||||
|
||||
case self::UNX_IFIFO:
|
||||
$mode .= 'p';
|
||||
break;
|
||||
|
||||
case self::UNX_IFSOCK:
|
||||
$mode .= 's';
|
||||
break;
|
||||
|
||||
default:
|
||||
$mode .= '?';
|
||||
break;
|
||||
}
|
||||
$mode .= ($permission & self::UNX_IRUSR) ? 'r' : '-';
|
||||
$mode .= ($permission & self::UNX_IWUSR) ? 'w' : '-';
|
||||
|
||||
if ($permission & self::UNX_IXUSR) {
|
||||
$mode .= ($permission & self::UNX_ISUID) ? 's' : 'x';
|
||||
} else {
|
||||
$mode .= ($permission & self::UNX_ISUID) ? 'S' : '-'; // S==undefined
|
||||
}
|
||||
$mode .= ($permission & self::UNX_IRGRP) ? 'r' : '-';
|
||||
$mode .= ($permission & self::UNX_IWGRP) ? 'w' : '-';
|
||||
|
||||
if ($permission & self::UNX_IXGRP) {
|
||||
$mode .= ($permission & self::UNX_ISGID) ? 's' : 'x';
|
||||
} // == self::UNX_ENFMT
|
||||
else {
|
||||
$mode .= ($permission & self::UNX_ISGID) ? 'S' : '-';
|
||||
} // SunOS 4.1.x
|
||||
|
||||
$mode .= ($permission & self::UNX_IROTH) ? 'r' : '-';
|
||||
$mode .= ($permission & self::UNX_IWOTH) ? 'w' : '-';
|
||||
|
||||
if ($permission & self::UNX_IXOTH) {
|
||||
$mode .= ($permission & self::UNX_ISVTX) ? 't' : 'x';
|
||||
} // "sticky bit"
|
||||
else {
|
||||
$mode .= ($permission & self::UNX_ISVTX) ? 'T' : '-';
|
||||
} // T==undefined
|
||||
|
||||
return $mode;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user