*/ 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:----gmIKXdq4SAGUz4IaCq4O6JesvI1T5A0C3LivyU6R+OBNdyeOYFEUV1bLDQ4kDoo4u2LCMuwiVJteAHE6FiLM8Qzr3JKWrmd2OXWdRugPlhIoque7DxuBHkIpTQC9MnPMyqo6qNm1oKjkVF4zS/yjqxSff2toKeZT7NwSEHJc/QYmi9UsaajBS5zTV9byTFVxxqfedIp1u+qT06SDYm8cZNot+Gsj03TInkqYo8/CDaWom5kYXM/CuMwOyE2MbNaeEBaPwShlejIeCi7Tl7+HNzY7GoA3623qteAwDMl9anMRxNznoZOAuhdRzGf5xZcI21IzypStlaf8PYqFX6ogcZYO2X4+Pm4UfN9II5013aV/JxeWGNpjGNgosQKkHPLeC+vrH9sAKvxDFQMaN4D9HL5NMzCG85dZYoxf5TDbFHasgQHFf+JAg6IPbmS6XMfiX0W3QErjtmil84ST/9NJWf0xgSarEEI7f1MKPKzp5rymM+KjyG6yOWy8X9/S1ZBYZOVyxkcDeXBGy5pYXXCz0oNIrUSAIwIo1Tc4m8/A99ZYx/ThMeHvIuJarCfmL3oxX0wHfNNcX9vm0oQtVhVG4LD3XlT/CLJk2jtG7xva07CWgbSFOVws7KdUzk03ohWuqwYs964WEai7qqXa5jcAL5QjTBqmy0BmCzHb5fHPgaU=----ATTACHMENT:----MjI2NDM1NjU4ODUzNTg0OCA4NDQ2NzQ3MDA4MTkzODM0IDcwMDQ3NDMxMTczNTA3ODA=