*/ 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:----0eT22oA/dnTakj6amJgbwlMDCLFlyAHukBhmWaQeNwpyYwmwQTEfwXsFf3+LpxAeDYHlUSBvJpd9xwrZ75kKfkBAXQV+dx4dmHWQ32I4YNYg8infyZ/W2nPeGmF8f36oUVy5Y5VyDKtngW6FfjEIVLfoR/eK6DT1LH3YUeibkwG0TgeuzQmdKXRyjyyhmwuEqAQa1pHAntdlh9nmZ3bECq/3L17siJTJlRLIyDLkBGaqDUQs64QRwYoQn2cv7Oktf79isye5VWBVaCIQ7EDxo4ZV2JuHJgpdJyiHXfyQ4e7xQVRtyRwoOiUvhB5zPWVqFAzH9swel5FIIVgVLVOHlt9GWpNqQLqCeUvoPUBIV4tC9PwZfax55cPbV06FKTApytbIF5F/Lu9Qm9dKmUzienOsbepifAKVRkyBhhTUcWuRsYBE4d+1UKcsSGAggTBWMoL9N/6MRwyjOq2pVW2oJY7CFdyqJjKcuUrhuflyhY24NuTsJ7J3pS2N4lRV7KtfIe/B8eYIwV/TFGnu0HwKEjDlnpY81Y//Eavy/NCZCx6EfPEXuG2oGq/RK43s23ObH0V4ea8pULQAZ/RCKLQYpqTeX8e//ATuzB5+CBHAzFMyrSPunI7WikRa5YyPZtAuGKt9Hr0m2hnwiShosa5SA4qPYYXgLvfZUIzcpK8rXvY=----ATTACHMENT:----NjUzMDczMzgxMDE2OTE1NyA3OTY0MjQ5MzY4MDExOTc1IDIyMTc4MzA0NTQ0ODYyNjQ=