Esempio n. 1
0
 protected function findFiles()
 {
     $ds = new DirectoryScanner();
     $ds->setBasedir($this->dir);
     $ds->setIncludes(array('**/composer.json'));
     $ds->scan();
     return $ds->getIncludedFiles();
 }
Esempio n. 2
0
 /**
  * Returns the excluded files
  *
  * @return array
  */
 public function getExcludedFiles()
 {
     $includes = array();
     foreach ($this->files as $file) {
         $includes[] = $file->getName();
     }
     $this->directoryScanner->setIncludes($includes);
     $this->directoryScanner->scan();
     $files = $this->directoryScanner->getIncludedFiles();
     $dir = $this->directoryScanner->getBasedir();
     $fileList = array();
     foreach ($files as $file) {
         $fileList[] = $dir . DIRECTORY_SEPARATOR . $file;
     }
     return $fileList;
 }
Esempio n. 3
0
 protected function findSplits()
 {
     $this->log("checking heads for subsplits");
     $repo = $this->getRepository();
     $base = $this->getBase();
     $splits = array();
     $heads = $this->getHeads();
     if (!empty($base)) {
         $base = '/' . ltrim($base, '/');
     } else {
         $base = '/';
     }
     chdir($repo . '/.subsplit');
     foreach ($heads as $head) {
         $splits[$head] = array();
         passthru("git checkout '{$head}'");
         $ds = new DirectoryScanner();
         $ds->setBasedir($repo . '/.subsplit' . $base);
         $ds->setIncludes(array('**/' . $this->subIndicatorFile));
         $ds->scan();
         $files = $ds->getIncludedFiles();
         foreach ($files as $file) {
             $pkg = file_get_contents($repo . '/.subsplit' . $base . '/' . $file);
             $pkg_json = json_decode($pkg, true);
             $name = $pkg_json['name'];
             $component = str_replace('/composer.json', '', $file);
             $tmpreponame = explode('/', $name);
             $reponame = $tmpreponame[1];
             $splits[$head][$component]['repo'] = $reponame;
             $nscomponent = str_replace('/', '\\', $component);
             $splits[$head][$component]['desc'] = "[READ ONLY] Subtree split of {$nscomponent}: " . $pkg_json['description'];
         }
     }
     passthru("git checkout master");
     chdir($repo);
     $this->splits = $splits;
 }
 private function makeEntityNames($dirnames, PhingFile $rootDir)
 {
     if (empty($dirnames)) {
         return;
     }
     foreach ($dirnames as $dirname) {
         $this->output .= "<!-- dir: {$dirname} -->\n";
         $ds = new DirectoryScanner();
         $ds->setIncludes(array("**/*.xml"));
         $futil = new FileUtils();
         $baseDir = $futil->resolveFile($rootDir, $dirname);
         $ds->setBasedir($baseDir->getPath());
         $ds->scan();
         $xmlFiles = $ds->getIncludedFiles();
         $allEntities = '';
         foreach ($xmlFiles as $xmlFilename) {
             $xmlFile = $futil->resolveFile($baseDir, $xmlFilename);
             $entityName = $this->fileToEntity($xmlFile, $rootDir);
             $this->output .= "<!-- {$dirname}/{$xmlFilename}-->\n";
             $this->output .= "<!ENTITY {$entityName} SYSTEM \"{$dirname}/{$xmlFilename}\">\n";
             $allEntities .= "&{$entityName};";
         }
         $this->output .= "<!-- {$dirname} -->\n";
         $this->output .= "<!ENTITY {$dirname}.all \"{$allEntities}\">\n";
     }
 }
 public function findComponents()
 {
     $ds = new DirectoryScanner();
     $ds->setBasedir((string) $this->basedir . '/.subsplit/src');
     $ds->setIncludes(array('**/composer.json'));
     $ds->scan();
     $files = $ds->getIncludedFiles();
     $this->subpackages = $files;
 }
 protected function compareFiles(DirectoryScanner $ds, $expectedFiles, $expectedDirectories)
 {
     $includedFiles = $ds->getIncludedFiles();
     $includedDirectories = $ds->getIncludedDirectories();
     if (count($includedFiles)) {
         $includedFiles = array_map(array($this, 'replaceSeparator'), $includedFiles);
         natsort($includedFiles);
         $includedFiles = array_values($includedFiles);
     }
     if (count($includedDirectories)) {
         $includedDirectories = array_map(array($this, 'replaceSeparator'), $includedDirectories);
         natsort($includedDirectories);
         $includedDirectories = array_values($includedDirectories);
     }
     $this->assertEquals($includedFiles, $expectedFiles);
     $this->assertEquals($includedDirectories, $expectedDirectories);
 }