attempt to clean up working directory after bundle install.

This commit is contained in:
Taylor Otwell 2012-02-02 15:52:57 -06:00
parent e0c84a94cc
commit b97dccfbbc
2 changed files with 25 additions and 8 deletions

View File

@ -23,7 +23,7 @@ protected function zipball($bundle, $url)
{ {
// When installing a bundle from a Zip archive, we'll first clone // When installing a bundle from a Zip archive, we'll first clone
// down the bundle zip into the bundles "working" directory so // down the bundle zip into the bundles "working" directory so
// we have a spot to do all of our bundle extrations. // we have a spot to do all of our bundle extration work.
$target = path('storage').'work/laravel-bundle.zip'; $target = path('storage').'work/laravel-bundle.zip';
File::put($target, file_get_contents($url)); File::put($target, file_get_contents($url));
@ -46,6 +46,8 @@ protected function zipball($bundle, $url)
$path = $this->path($bundle); $path = $this->path($bundle);
File::cpdir($latest->getRealPath(), path('bundle').$path); File::cpdir($latest->getRealPath(), path('bundle').$path);
@unlink($target);
} }
/** /**

View File

@ -1,4 +1,4 @@
<?php namespace Laravel; use Closure, FilesystemIterator; <?php namespace Laravel; use Closure, FilesystemIterator as fIterator;
class File { class File {
@ -174,15 +174,29 @@ public static function is($extensions, $path)
return false; return false;
} }
/**
* Move a directory from one location to another.
*
* @param string $source
* @param string $destination
* @param int $options
* @return void
*/
public static function mvdir($source, $destination, $options = fIterator::SKIP_DOTS)
{
static::cpdir($source, $destination, true, $options);
}
/** /**
* Recursively copy directory contents to another directory. * Recursively copy directory contents to another directory.
* *
* @param string $source * @param string $source
* @param string $destination * @param string $destination
* @param bool $delete * @param bool $delete
* @param int $options
* @return void * @return void
*/ */
public static function cpdir($source, $destination, $delete = false) public static function cpdir($source, $destination, $delete = false, $options = fIterator::SKIP_DOTS)
{ {
if ( ! is_dir($source)) return; if ( ! is_dir($source)) return;
@ -194,7 +208,7 @@ public static function cpdir($source, $destination, $delete = false)
mkdir($destination, 0777, true); mkdir($destination, 0777, true);
} }
$items = new FilesystemIterator($source, FilesystemIterator::SKIP_DOTS); $items = new fIterator($source, $options);
foreach ($items as $item) foreach ($items as $item)
{ {
@ -210,7 +224,7 @@ public static function cpdir($source, $destination, $delete = false)
static::cpdir($path, $location); static::cpdir($path, $location);
if ($delete) rmdir($item->getRealPath()); if ($delete) @rmdir($item->getRealPath());
} }
// If the file system item is an actual file, we can copy the // If the file system item is an actual file, we can copy the
// file from the bundle asset directory to the public asset // file from the bundle asset directory to the public asset
@ -220,7 +234,7 @@ public static function cpdir($source, $destination, $delete = false)
{ {
copy($item->getRealPath(), $location); copy($item->getRealPath(), $location);
if ($delete) unlink($item->getRealPath()); if ($delete) @unlink($item->getRealPath());
} }
} }
@ -231,13 +245,14 @@ public static function cpdir($source, $destination, $delete = false)
* Get the most recently modified file in a directory. * Get the most recently modified file in a directory.
* *
* @param string $directory * @param string $directory
* @param int $options
* @return SplFileInfo * @return SplFileInfo
*/ */
public static function latest($directory) public static function latest($directory, $options = fIterator::SKIP_DOTS)
{ {
$time = 0; $time = 0;
$items = new FilesystemIterator($directory, FilesystemIterator::SKIP_DOTS); $items = new fIterator($directory, $options);
// To get the latest created file, we'll simply spin through the // To get the latest created file, we'll simply spin through the
// directory, setting the latest file if we encounter a file // directory, setting the latest file if we encounter a file