Added a one click deploy command

This commit is contained in:
Graham Campbell
2015-01-01 17:47:53 +00:00
parent fcf68b3aea
commit 981b5a055d
7 changed files with 131 additions and 13 deletions
+88
View File
@@ -0,0 +1,88 @@
<?php
namespace CachetHQ\Cachet\Commands;
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
class OneClickDeployCommand extends Command
{
/**
* The console command name.
*
* @var string
*/
protected $name = 'cachet:one-click-deploy';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Installs CachetHQ on one click supported services';
/**
* Should we run the migrations?
*
* @var bool
*/
protected $migrate;
/**
* Create a new one click deploy command instance.
*
* @param bool $migrate
*
* @return void
*/
public function __construct($migrate)
{
$this->migrate = $migrate;
parent::__construct();
}
/**
* Execute the console command.
*
* @return int|null
*/
public function fire()
{
if ($this->migrate) {
return $this->runMigrations();
}
$this->info('Please run "php artisan migrate" to finish the installation.');
}
/**
* Run the migrations.
*
* @return int|null
*/
protected function runMigrations()
{
$options = [
'--database' => $this->input->getOption('database'),
'--force' => $this->input->getOption('force'),
'--seed' => $this->input->getOption('seed'),
];
return $this->call('migrate', $options);
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return [
['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use.'],
['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production.'],
['seed', null, InputOption::VALUE_NONE, 'Indicates if the seed task should be re-run.'],
];
}
}
+31
View File
@@ -0,0 +1,31 @@
<?php
namespace CachetHQ\Cachet\Providers;
use CachetHQ\Cachet\Commands\OneClickDeployCommand;
use Illuminate\Support\ServiceProvider;
class ConsoleServiceProvider extends ServiceProvider
{
/**
* Boot the service provider.
*
* @return void
*/
public function boot()
{
$this->commands('CachetHQ\Cachet\Commands\OneClickDeployCommand');
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app->singleton('CachetHQ\Cachet\Commands\OneClickDeployCommand', function ($app) {
return new OneClickDeployCommand($app->environment('heroku'));
});
}
}