mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 04:32:49 +00:00
no message
This commit is contained in:
parent
26727fea17
commit
14bc7a0f76
@ -197,7 +197,7 @@ class AppsController extends AbstractController
|
||||
$logFile = base_path('docker/logs/apps/' . $appName . '.log');
|
||||
|
||||
if (!file_exists($logFile)) {
|
||||
return Base::retSuccess('日志返回成功', [
|
||||
return Base::retSuccess('success', [
|
||||
'log' => ''
|
||||
]);
|
||||
}
|
||||
@ -208,7 +208,7 @@ class AppsController extends AbstractController
|
||||
exec($cmd, $output);
|
||||
$logContent = implode("\n", $output);
|
||||
|
||||
return Base::retSuccess('日志返回成功', [
|
||||
return Base::retSuccess('success', [
|
||||
'log' => $logContent
|
||||
]);
|
||||
}
|
||||
|
||||
@ -94,6 +94,17 @@ class Apps
|
||||
// 获取本地安装信息
|
||||
$localInfo = self::getAppLocalInfo($appName);
|
||||
|
||||
// 检查是否需要卸载旧版本
|
||||
if ($command === 'up' && $localInfo['status'] === 'installed' && $localInfo['require_uninstalls']) {
|
||||
foreach ($localInfo['require_uninstalls'] as $requireUninstall) {
|
||||
if (version_compare($versionInfo['version'], $requireUninstall['version'], $requireUninstall['operator'])) {
|
||||
$op = $requireUninstall['operator'] ?: '=';
|
||||
$reason = !empty($requireUninstall['reason']) ? "(原因:{$requireUninstall['reason']})" : '';
|
||||
return Base::retError("更新版本 {$versionInfo['version']},需要先卸载已安装的版本{$reason}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 生成docker-compose.yml文件
|
||||
$res = self::generateDockerComposeYml($versionInfo['compose_file'], $localInfo['params']);
|
||||
if (Base::isError($res)) {
|
||||
@ -241,6 +252,7 @@ class Apps
|
||||
'github' => '',
|
||||
'document' => '',
|
||||
'fields' => [],
|
||||
'require_uninstalls' => [],
|
||||
];
|
||||
|
||||
// 处理应用图标
|
||||
@ -322,6 +334,32 @@ class Apps
|
||||
$info['fields'] = $fields;
|
||||
}
|
||||
|
||||
// 处理 require_uninstalls 配置
|
||||
if (isset($configData['require_uninstalls']) && is_array($configData['require_uninstalls'])) {
|
||||
$requireUninstalls = [];
|
||||
foreach ($configData['require_uninstalls'] as $item) {
|
||||
// 处理不同格式的配置
|
||||
if (is_array($item)) {
|
||||
// 完整格式: {version: '2.0.0', reason: '原因'}
|
||||
if (isset($item['version']) && preg_match('/^\s*([<>=!]*)\s*(.+)$/', $item['version'], $matches)) {
|
||||
$requireUninstalls[] = [
|
||||
'version' => $matches[2],
|
||||
'operator' => $matches[1] ?: '=',
|
||||
'reason' => $item['reason'] ? self::getMultiLanguageField($item['reason']) : ''
|
||||
];
|
||||
}
|
||||
} else {
|
||||
// 简化格式: 直接是版本号字符串
|
||||
$requireUninstalls[] = [
|
||||
'version' => $item,
|
||||
'operator' => '=',
|
||||
'reason' => ''
|
||||
];
|
||||
}
|
||||
}
|
||||
$info['require_uninstalls'] = $requireUninstalls;
|
||||
}
|
||||
|
||||
// 处理其他标准字段
|
||||
foreach (['author', 'website', 'github', 'document'] as $field) {
|
||||
if (isset($configData[$field])) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user