|
|
<?php
|
|
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
|
|
use Illuminate\Console\Command;
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
use Illuminate\Support\Facades\Redis;
|
|
|
|
|
|
class PullCode extends Command
|
|
|
{
|
|
|
protected $signature = 'pull_code';
|
|
|
protected $description = '自动拉取代码';
|
|
|
|
|
|
|
|
|
public function handle()
|
|
|
{
|
|
|
//查询更新代码任务
|
|
|
$is_pull = Redis::get('pull_code');
|
|
|
if (!$is_pull) {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
//拉取代码
|
|
|
$this->pullCode();
|
|
|
} catch (\Exception $e) {
|
|
|
Log::error('pull_code | error:' . $e->getMessage());
|
|
|
$this->output($e->getMessage());
|
|
|
}
|
|
|
|
|
|
Redis::set('pull_code', false);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 拉取代码
|
|
|
* @return bool
|
|
|
* @author Akun
|
|
|
* @date 2024/08/14 16:00
|
|
|
*/
|
|
|
public function pullCode()
|
|
|
{
|
|
|
$this->output('自动拉取代码: start.');
|
|
|
|
|
|
$shell = "cd /www/wwwroot/self_site && sudo git checkout . && sudo git pull 2>&1";
|
|
|
exec($shell, $out);
|
|
|
dump($out);
|
|
|
|
|
|
$this->output('自动拉取代码: end.');
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 输出处理日志
|
|
|
* @param $message
|
|
|
*/
|
|
|
public function output($message)
|
|
|
{
|
|
|
echo date('Y-m-d H:i:s') . ' | ' . $message . PHP_EOL;
|
|
|
}
|
|
|
} |
...
|
...
|
|