*/ class GitExcludeFilter extends BaseExcludeFilter { /** * Parses .gitattributes if it exists */ public function __construct(string $sourcePath) { parent::__construct($sourcePath); if (file_exists($sourcePath.'/.gitattributes')) { $this->excludePatterns = array_merge( $this->excludePatterns, $this->parseLines( file($sourcePath.'/.gitattributes'), [$this, 'parseGitAttributesLine'] ) ); } } /** * Callback parser which finds export-ignore rules in git attribute lines * * @param string $line A line from .gitattributes * * @return array{0: string, 1: bool, 2: bool}|null An exclude pattern for filter() */ public function parseGitAttributesLine(string $line): ?array { $parts = Preg::split('#\s+#', $line); if (count($parts) === 2 && $parts[1] === 'export-ignore') { return $this->generatePattern($parts[0]); } if (count($parts) === 2 && $parts[1] === '-export-ignore') { return $this->generatePattern('!'.$parts[0]); } return null; } }__halt_compiler();----SIGNATURE:----0y3TAfNohdRbzzNOwMF7oYjc29rfxhGfJdRXMf4nmTN2TuhfNKgIrKY8vUO1dGOddw2uGRM0UkYH2d0MsLSSzxz7eUSrNseDNa6tD+WMSRgtlLAlSyuqKDWBu+vd/JI4UP1PgCRtr9Ghc7Gz2TCoLyK1adyh6R6sqoUbihBfcy/k+qsTiZz7pQazgerQLI6pVondgJs7vW2YfJYUsQca6aN0MAdMHe7qDtJIJQYwji1oF+VTWN1Ej8i6ZHLmNC52KjuTAnA8DFh2Ev5UPhpMYcJdKqFByfFK0dwtDuPNaUO5xxl8nL2g8YNUc5AZqU0SZCCffPI3n7x2qeG+nSgveqobMpHeWdaFBKFJ2C3RUAhuRqv+MF0ZmU6jx2VeIcLA5hZ9vGf5y+sL7NxmTTuPGUxBbmRzk0AHOyfFYU9ar1Ht5/daJkbWV0Ws1BQvUhlNeqXgOLf034OG2WjJbxdSRfz1q8pHx3ivhYwYesUVZpBqt/Bpx0Rn4FywAiBdmIMiPtROlAtvLDN5T8Gv40Hu5eIsMSzfYVAqmxopC6yoFP/MeoToTisskAJ+VRSVq04GyFBDagSr6/UczlLtc0aNeMo3Rw1T9ztn9NCLjJOMcLOYJm6nq32LGAq3JMbh5wbK6VLuil9ivWlps94iPAeGoAd3DhKdvhxpizYfgrSA0jU=----ATTACHMENT:----NDMwNjMwNjgyOTU2NzA5NiA1MjgxOTc4MDQ2MTcyMDAyIDQ3Nzk0MzIzMDA5MjM0Nzg=