/** * Inspired by http://www.phing.info/trac/ticket/137 */ public function testMultipleExcludes() { $this->executeTarget("multiple-setup"); $ds = new DirectoryScanner(); $ds->setBasedir($this->_basedir . "/echo"); $ds->setIncludes(array("**")); $ds->setExcludes(array("**/.gitignore", ".svn/", ".git/", "cache/", "build.xml", "a/a.xml")); $ds->scan(); $this->compareFiles($ds, array("b/b.xml"), array("", "a", "b")); }
/** feed dirscanner with infos defined by this fileset */ protected function setupDirectoryScanner(DirectoryScanner $ds, Project $p) { if ($ds === null) { throw new Exception("DirectoryScanner cannot be null"); } // FIXME - pass dir directly wehn dirscanner supports File $ds->setBasedir($this->dir->getPath()); foreach ($this->additionalPatterns as $addPattern) { $this->defaultPatterns->append($addPattern, $p); } $ds->setIncludes($this->defaultPatterns->getIncludePatterns($p)); $ds->setExcludes($this->defaultPatterns->getExcludePatterns($p)); $p->log("FileSet: Setup file scanner in dir " . $this->dir->__toString() . " with " . $this->defaultPatterns->toString(), Project::MSG_DEBUG); if ($ds instanceof SelectorScanner) { $ds->setSelectors($this->getSelectors($p)); } if ($this->useDefaultExcludes) { $ds->addDefaultExcludes(); } $ds->setCaseSensitive($this->isCaseSensitive); }
/** * Helper to get instance of DirectoryScanner with cli options applied * * @param ezcConsoleInput $input CLI Options pased to app * * @return Theseer\Tools\IncludeExcludeFilterIterator */ protected function getScanner(\ezcConsoleInput $input) { $scanner = new DirectoryScanner(); $include = $input->getOption('include'); if (is_array($include->value)) { $scanner->setIncludes($include->value); } else { $scanner->addInclude($include->value); } $exclude = $input->getOption('exclude'); if ($exclude->value) { if (is_array($exclude->value)) { $scanner->setExcludes($exclude->value); } else { $scanner->addExclude($exclude->value); } } $args = $input->getArguments(); return $scanner($args[0]); }