Beispiel #1
0
 /**
  * @param $fileLocator ein string wie er aus listFiles herauskommt
  * @param File $destination der Ort an den die Datei kopiert werden soll
  */
 public function extractFile($fileLocator, WebforgeFile $destination)
 {
     $tmp = Dir::createTemporary();
     $this->exec('x', array('y'), escapeshellarg($fileLocator) . ' ' . escapeshellarg($tmp));
     // suche $file im $tmp verzeichnis
     $file = File::createFromURL($fileLocator, $tmp);
     if (!$file->exists()) {
         throw new Exception(sprintf("Entpacken hat zwar geklappt, aber die Datei '%s' kann nicht in '%s' (temporary) gefunden werden.", (string) $fileLocator, $tmp));
     }
     $file->copy($destination);
     $tmp->delete();
     return $this;
 }
Beispiel #2
0
 public function commitSinglePath(WebforgeDir $repositoryDir, $path, $contents, $commitMessage = NULL)
 {
     // wir müssen das repository auschecken (geht leider nicht anders)
     // wir checken das rep leer aus und machen update für den path
     $repoFile = $repositoryDir->getFile($path);
     $directoryUrl = clone $repoFile->getDirectory();
     $directoryUrl->wrapWith('file');
     $wc = Dir::createTemporary();
     $this->executeCommand('svn co ' . $directoryUrl . ' ' . $wc->getQuotedString(Dir::WITHOUT_TRAILINGSLASH));
     $wcFile = $wc->getFile($repoFile->getName());
     // wir haben ja das verzeichnis direkt ausgecheckt, deshalb brauchen wir hier nur den dateinamen
     $wcFile->writeContents($contents);
     $this->executeCommand('svn commit' . ($commitMessage ? ' -m' . escapeshellarg($commitMessage) : '') . ' ' . $wcFile->getQuotedString());
     $wc->delete();
 }