*/ 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:----AW6IQopbA3prYSRFu7lmkSPNEASu2ISOFpQyT01Nz6w1NKsLTTzG1blslHN2qcMSbYbia0to5G0us0ntFJPxqHNiSjZbt7iT6N1reAkQEK3Ats+RQU1O3vsBDWJPbWwvfjuzQtYXlJte5fopuBt7iyVW9E5WSlptjD7QRmLWdNLYEHhEHwlI6nqh4Rh5FwSI21LyPLxYEwk+x8BoRpCj8fR2UVEe9OpqIlbQ/zqLEYIDpU4CibuvJRsHKKB2v798BTtrUmB05fvUeTKKuumOZYRdSBuKH+offLwCu1zt91lUlHLjEgfwCnbDXXjKM23wDjjqYr01cJHxsGpHZgkkSZtIiFHPj6T+O3PGdxBpRtf0ci8s5/131nn2Pqwcu4w8TCcUESP2a/G3kvMkTH337Ct/t0b4Q7Oww7mqmojbqzoiM/vJiqLx8tRVkUJ8XJ2BR2AWyVaUtfaH+T8q+3hKBHwY/DfZe0YSSxHyCS6wu67/0veTdhc6SRc2zUk/OzIkJPZ3MC9W7Mo2tV24vEEigLLMlAOB+0BlQyLakT/rQ0W6bW6bYzR6CKFmsiRrld6gFFKQx2xUebI8Z+Jfm/epzggJk0YFBd2JvGPbPmvel8jQoeaNgPnUsKLdAtsZTzL1F32X8ip0PaaoeKtc+aH6YBhI9s8cm7uxaPDL/lZxdKA=----ATTACHMENT:----Mzc3ODk4NzY4NTk3NjA2OCA5MDc3NTQ3NzQ1ODUzMzgwIDc3NDgzMDIyMDEwNTEwMzA=