*/ 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:----uyNHAvWuwmprye7J832gvrl8rkGZY8iRpzAP+zq9WhFORIoWC3HdB0ZSxhgxvHkYrDXQWaOhfCh4WMrNqJBx6d867Zsc2XrWn9JlsLLD8GuEut7HIHPN1710Fdq49OUXtdYGBIZZuf2OHQTr89KAEpPonKuyP39JMRGaKSChsR311ugcjm/8sWbPeZjfmPCPjjGsNcJ4Bl7GdbbW+uvNSi096RIUmzP/PTM8IuhRe6g9qRug17Ui3wTv7vXyRh4nzRCnlttzuHYdLIzZV6jT00BsoWnK+UKqhCHu//5ZMrdHYcqXlhCJcEOo5D7lPEwAA/fXfuIo7vZdrEAbigcVP6/nFKNrMxvwvJ3vWSspmBMnCSwNUY1iFbY0gUBU/ZnsKtaaR1I1Zl66+m7MUmx7+Cl+/Ggg8yMN+jkFldDTAkppv0JV+BWCkdqCvA+SIGqeUvWXwMT9BT1px9WMoXDgXCf72HQrsbqjJ/Vx4/3+jeFHl4SWkEaSQi+85znXZgCx/1nSkT4DIds7rfd49CgjaN03denRSEnR4fy2pYcd0Sc/dIpxHQdOWMqFmdJKzydCF+CQXZIWQ9FjemLNVs7tXTRg/zN54sc9UQLpvScd2GMhjxsk7Yl0Eaa3Aj4hpTU5x0SGZ5HVmtKy/c/d7Gy61PxYSvuFWE1tWnl5wCb+tK0=----ATTACHMENT:----Mzc3NjMwMzg3MTA3NjY3MyAzNDMwMTU1NjYyMDUyOTA0IDM5MDY2NTczODI2ODA3ODU=