Beispiel #1
0
 public function testFindFirstExistingDefault()
 {
     $tmpdir = tmpdir();
     mkdir($tmpdir);
     touch("{$tmpdir}/c");
     $this->assertEquals("{$tmpdir}/default", findFirstExisting(array("{$tmpdir}/a", "{$tmpdir}/b", "{$tmpdir}/d"), "{$tmpdir}/default"));
 }
Beispiel #2
0
 /**
  * Open an existing bag. This expects $bag to be set.
  *
  * @return void
  */
 private function _openBag()
 {
     if ($this->_isCompressed()) {
         $this->bagDirectory = BagIt_uncompressBag($this->bag);
     } else {
         $this->bagDirectory = realpath($this->bag);
     }
     $this->bagitFile = "{$this->bagDirectory}/bagit.txt";
     list($version, $fileEncoding, $errors) = BagIt_readBagItFile($this->bagitFile);
     $this->bagVersion = $version;
     $this->tagFileEncoding = $fileEncoding;
     $this->bagErrors = array_merge($this->bagErrors, $errors);
     $files = scandir($this->bagDirectory);
     if (count($files) > 0) {
         $bagdir = $this->bagDirectory;
         $manifestFile = findFirstExisting(array("{$bagdir}/manifest-sha1.txt", "{$bagdir}/manifest-md5.txt"), "{$bagdir}/manifest-sha1.txt");
         try {
             $this->manifest = new BagItManifest($manifestFile, $this->bagDirectory . '/', $this->tagFileEncoding);
         } catch (Exception $exc) {
             array_push($this->bagErrors, array('manifest', "Error reading {$manifestFile}."));
         }
         if ($this->isExtended()) {
             $manifestFile = findFirstExisting(array("{$bagdir}/tagmanifest-sha1.txt", "{$bagdir}/tagmanifest-md5.txt"), "{$bagdir}/tagmanifest-sha1.txt");
             $this->tagManifest = new BagItManifest($manifestFile, $this->bagDirectory . '/', $this->tagFileEncoding);
             try {
                 $this->fetch = new BagItFetch("{$this->bagDirectory}/fetch.txt", $this->tagFileEncoding);
             } catch (Exception $exc) {
                 array_push($this->bagErrors, array('fetch', 'Error reading fetch file.'));
             }
             $this->bagInfoFile = "{$this->bagDirectory}/bag-info.txt";
             $this->_readBagInfo();
         }
     }
 }