Example #1
0
 /**
  * Create a temporary file in a given directory.
  *
  * <p>The file denoted by the returned abstract pathname did not
  * exist before this method was invoked, any subsequent invocation
  * of this method will yield a different file name.</p>
  *
  * @param string $prefix        prefix before the random number.
  * @param string $suffix        file extension; include the '.'.
  * @param PhingFile $parentDir  Directory to create the temporary file in;
  *                              sys_get_temp_dir() used if not specified.
  * @param boolean $deleteOnExit whether to set the tempfile for deletion on
  *                              normal exit.
  * @param boolean $createFile   true if the file must actually be created. If false
  *                              chances exist that a file with the same name is created in the time
  *                              between invoking this method and the moment the file is actually created.
  *                              If possible set to true.
  * @return PhingFile            a File reference to the new temporary file.
  * @throws BuildException
  */
 public function createTempFile($prefix, $suffix, PhingFile $parentDir, $deleteOnExit = false, $createFile = false)
 {
     $result = null;
     $parent = $parentDir === null ? sys_get_temp_dir() : $parentDir->getPath();
     if ($createFile) {
         try {
             $result = PhingFile::createTempFile($prefix, $suffix, new PhingFile($parent));
         } catch (IOException $e) {
             throw new BuildException("Could not create tempfile in " . $parent, $e);
         }
     } else {
         do {
             $result = new PhingFile($parent, $prefix . substr(md5(time()), 0, 8) . $suffix);
         } while ($result->exists());
     }
     if ($deleteOnExit) {
         $result->deleteOnExit();
     }
     return $result;
 }
Example #2
0
 /**
  * try and create a temp file in our temp dir; this
  * checks that it has space and access.
  * We also do some clock reporting.
  *
  * @param PrintStream $out
  */
 private static function doReportTempDir(PrintStream $out)
 {
     $tempdir = PhingFile::getTempDir();
     if ($tempdir == null) {
         $out->println("Warning: php.tmpdir is undefined");
         return;
     }
     $out->println("Temp dir is " . $tempdir);
     $tempDirectory = new PhingFile($tempdir);
     if (!$tempDirectory->exists()) {
         $out->println("Warning, php.tmpdir directory does not exist: " . $tempdir);
         return;
     }
     $now = time();
     $tempFile = PhingFile::createTempFile('diag', 'txt', $tempDirectory);
     $fileWriter = new FileWriter($tempFile);
     $fileWriter->write('some test text');
     $fileWriter->close();
     $filetime = $tempFile->lastModified();
     $tempFile->delete();
     $out->println("Temp dir is writeable");
     $drift = $filetime - $now;
     $out->println("Temp dir alignment with system clock is " . $drift . " s");
     if (abs($drift) > 10) {
         $out->println("Warning: big clock drift -maybe a network filesystem");
     }
 }