52 lines
1.3 KiB
PHP
52 lines
1.3 KiB
PHP
|
<?php
|
||
|
namespace Grav\Plugin\Console;
|
||
|
|
||
|
use Grav\Console\ConsoleCommand;
|
||
|
use Grav\Plugin\GitSync\GitSync;
|
||
|
|
||
|
/**
|
||
|
* Class LogCommand
|
||
|
*
|
||
|
* @package Grav\Plugin\Console
|
||
|
*/
|
||
|
class SyncCommand extends ConsoleCommand
|
||
|
{
|
||
|
protected function configure()
|
||
|
{
|
||
|
$this
|
||
|
->setName('sync')
|
||
|
->setDescription('Performs a synchronization of your site')
|
||
|
->setHelp('The <info>sync</info> command performs a synchronization of your site. Useful if you want to run a periodic crontab job to automate it.')
|
||
|
;
|
||
|
}
|
||
|
|
||
|
protected function serve()
|
||
|
{
|
||
|
require_once __DIR__ . '/../vendor/autoload.php';
|
||
|
|
||
|
$plugin = new GitSync();
|
||
|
$repository = $plugin->getConfig('repository', false);
|
||
|
|
||
|
$this->output->writeln('');
|
||
|
|
||
|
if (!$repository) {
|
||
|
$this->output->writeln('<red>ERROR:</red> No repository has been configured');
|
||
|
}
|
||
|
|
||
|
$this->output->writeln('Synchronizing with <cyan>' . $repository . '</cyan>');
|
||
|
|
||
|
if ($plugin->hasChangesToCommit()) {
|
||
|
$this->output->writeln('Changes detected, adding and committing...');
|
||
|
$plugin->add();
|
||
|
$plugin->commit();
|
||
|
}
|
||
|
|
||
|
$this->output->write('Starting Synchronization...');
|
||
|
|
||
|
$plugin->sync();
|
||
|
|
||
|
$this->output->writeln('completed.');
|
||
|
}
|
||
|
}
|
||
|
|