#add jira & message sync
This commit is contained in:
@@ -8,9 +8,10 @@ use Illuminate\Console\Command;
|
||||
class EnvCommand extends Command
|
||||
{
|
||||
protected $signature = 'env:manage
|
||||
{action : 操作类型 (list|environments|apply|save|import|delete)}
|
||||
{action : 操作类型 (list|environments|apply|save|import|delete|backups|restore|delete-backup)}
|
||||
{--project= : 项目名称}
|
||||
{--environment= : 环境名称}
|
||||
{--backup= : 备份名称}
|
||||
{--content= : 环境文件内容}';
|
||||
|
||||
protected $description = '环境文件管理工具';
|
||||
@@ -41,6 +42,12 @@ class EnvCommand extends Command
|
||||
return $this->importEnvironment();
|
||||
case 'delete':
|
||||
return $this->deleteEnvironment();
|
||||
case 'backups':
|
||||
return $this->listBackups();
|
||||
case 'restore':
|
||||
return $this->restoreBackup();
|
||||
case 'delete-backup':
|
||||
return $this->deleteBackup();
|
||||
default:
|
||||
$this->error("未知操作: {$action}");
|
||||
$this->showUsage();
|
||||
@@ -234,18 +241,113 @@ class EnvCommand extends Command
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 列出项目备份
|
||||
*/
|
||||
private function listBackups(): int
|
||||
{
|
||||
$project = $this->option('project');
|
||||
|
||||
if (!$project) {
|
||||
$this->error('请指定项目名称: --project=项目名');
|
||||
return 1;
|
||||
}
|
||||
|
||||
$backups = $this->envManager->getProjectBackups($project);
|
||||
|
||||
if (empty($backups)) {
|
||||
$this->info("项目 {$project} 没有备份文件");
|
||||
return 0;
|
||||
}
|
||||
|
||||
$this->info("项目 {$project} 的备份文件:");
|
||||
$this->table(
|
||||
['备份名称', '文件大小', '创建时间'],
|
||||
array_map(function ($backup) {
|
||||
return [
|
||||
$backup['name'],
|
||||
$this->formatBytes($backup['size']),
|
||||
$backup['created_at']
|
||||
];
|
||||
}, $backups)
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 恢复备份
|
||||
*/
|
||||
private function restoreBackup(): int
|
||||
{
|
||||
$project = $this->option('project');
|
||||
$backup = $this->option('backup');
|
||||
|
||||
if (!$project || !$backup) {
|
||||
$this->error('请指定项目名称和备份名称: --project=项目名 --backup=备份名');
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ($this->confirm("确定要将备份 {$backup} 恢复到项目 {$project} 吗?")) {
|
||||
$success = $this->envManager->restoreBackup($project, $backup);
|
||||
|
||||
if ($success) {
|
||||
$this->info("成功将备份 {$backup} 恢复到项目 {$project}");
|
||||
return 0;
|
||||
} else {
|
||||
$this->error("恢复备份失败");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
$this->info('操作已取消');
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除备份
|
||||
*/
|
||||
private function deleteBackup(): int
|
||||
{
|
||||
$project = $this->option('project');
|
||||
$backup = $this->option('backup');
|
||||
|
||||
if (!$project || !$backup) {
|
||||
$this->error('请指定项目名称和备份名称: --project=项目名 --backup=备份名');
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ($this->confirm("确定要删除备份 {$project}/{$backup} 吗?")) {
|
||||
$success = $this->envManager->deleteBackup($project, $backup);
|
||||
|
||||
if ($success) {
|
||||
$this->info("成功删除备份 {$project}/{$backup}");
|
||||
return 0;
|
||||
} else {
|
||||
$this->error("删除备份失败");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
$this->info('操作已取消');
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示使用说明
|
||||
*/
|
||||
private function showUsage(): void
|
||||
{
|
||||
$this->info('使用说明:');
|
||||
$this->line(' php artisan env:manage list # 列出所有项目');
|
||||
$this->line(' php artisan env:manage environments --project=项目名 # 列出项目环境');
|
||||
$this->line(' php artisan env:manage apply --project=项目名 --environment=环境名 # 应用环境');
|
||||
$this->line(' php artisan env:manage save --project=项目名 --environment=环境名 # 保存环境');
|
||||
$this->line(' php artisan env:manage import --project=项目名 --environment=环境名 # 导入环境');
|
||||
$this->line(' php artisan env:manage delete --project=项目名 --environment=环境名 # 删除环境');
|
||||
$this->line(' php artisan env:manage list # 列出所有项目');
|
||||
$this->line(' php artisan env:manage environments --project=项目名 # 列出项目环境');
|
||||
$this->line(' php artisan env:manage apply --project=项目名 --environment=环境名 # 应用环境');
|
||||
$this->line(' php artisan env:manage save --project=项目名 --environment=环境名 # 保存环境');
|
||||
$this->line(' php artisan env:manage import --project=项目名 --environment=环境名 # 导入环境');
|
||||
$this->line(' php artisan env:manage delete --project=项目名 --environment=环境名 # 删除环境');
|
||||
$this->line(' php artisan env:manage backups --project=项目名 # 列出项目备份');
|
||||
$this->line(' php artisan env:manage restore --project=项目名 --backup=备份名 # 恢复备份');
|
||||
$this->line(' php artisan env:manage delete-backup --project=项目名 --backup=备份名 # 删除备份');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
30
app/Console/Commands/JiraTestCommand.php
Normal file
30
app/Console/Commands/JiraTestCommand.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class JiraTestCommand extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'app:jira-test-command';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Command description';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user