datatable.directory codebase https://datatable.directory/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

70 lines
2.2 KiB

<?php namespace AdamWathan\EloquentOAuthL5\Installation;
use Illuminate\Console\Command;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Foundation\Composer as Composer51;
use Illuminate\Support\Composer as Composer52;
use Symfony\Component\Console\Input\InputOption;
class InstallCommand extends Command
{
protected $filesystem;
protected $composer;
protected $name = 'eloquent-oauth:install';
protected $description = 'Install package config and migrations';
public function __construct(Filesystem $filesystem)
{
parent::__construct();
$this->filesystem = $filesystem;
if (class_exists(Composer52::class)) {
$this->composer = app(Composer52::class);
} else {
$this->composer = app(Composer51::class);
}
}
public function handle()
{
try {
$this->publishConfig();
$this->publishMigrations();
$this->composer->dumpAutoloads();
$this->comment('Package configuration and migrations installed!');
} catch (FileExistsException $e) {
$this->error('It looks like this package has already been installed. Use --force to override.');
}
}
public function publishConfig()
{
$this->publishFile(__DIR__ . '/../../config/eloquent-oauth.php', config_path() . '/eloquent-oauth.php');
$this->info('Configuration published.');
}
public function publishMigrations()
{
$name = 'create_oauth_identities_table';
$path = $this->laravel['path.database'] . '/migrations';
$fullPath = $this->laravel['migration.creator']->create($name, $path);
$this->filesystem->put($fullPath, $this->filesystem->get(__DIR__ . '/../../migrations/create_oauth_identities_table.stub'));
}
public function publishFile($from, $to)
{
if ($this->filesystem->exists($to) && !$this->option('force')) {
throw new FileExistsException;
}
$this->filesystem->copy($from, $to);
}
protected function getOptions()
{
return [
['force', null, InputOption::VALUE_NONE, 'Overwrite any existing files.'],
];
}
}