public function test_it_can_be_queried_by_directory_recursively() { factory(Media::class)->create(['directory' => 'foo']); factory(Media::class)->create(['directory' => 'foo/bar']); factory(Media::class)->create(['directory' => 'foo/bar']); factory(Media::class)->create(['directory' => 'foo/bar/baz']); $this->assertEquals(4, Media::inDirectory('tmp', 'foo', true)->count()); $this->assertEquals(3, Media::inOrUnderDirectory('tmp', 'foo/bar')->count()); $this->assertEquals(1, Media::inDirectory('tmp', 'foo/bar/baz', true)->count()); }
/** * Execute the console command. * * @return void */ public function handle() { $disk = $this->argument('disk'); $directory = $this->option('directory') ?: ''; $recursive = !$this->option('non-recursive'); $counter = 0; $records = Media::inDirectory($disk, $directory, $recursive)->get(); foreach ($records as $media) { if (!$media->fileExists()) { $media->delete(); ++$counter; $this->info("Pruned record for file {$media->getDiskPath()}", 'v'); } } $this->info("Pruned {$counter} record(s)."); }
/** * Execute the console command. * * @return void */ public function handle() { $this->resetCounters(); $disk = $this->argument('disk'); $directory = $this->option('directory') ?: ''; $recursive = !$this->option('non-recursive'); $force = (bool) $this->option('force'); $files = $this->listFiles($disk, $directory, $recursive); $existing_media = Media::inDirectory($disk, $directory, $recursive)->get(); foreach ($files as $path) { if ($record = $this->getRecordForFile($path, $existing_media)) { if ($force) { $this->updateRecordForFile($record, $path); } } else { $this->createRecordForFile($disk, $path); } } $this->outputCounters($force); }