2026-08-16 01:27:30 +08:00
|
|
|
package backendupdate
|
|
|
|
|
|
|
|
|
|
import "yms-daemon/internal/transaction"
|
|
|
|
|
|
2026-08-17 10:10:14 +08:00
|
|
|
// Progress 一次更新过程中的单条实时进度事件,用于回传给本地 CLI。
|
|
|
|
|
// 它仅用于观测反馈:即使投递失败也不得改变已持久化的更新事务状态。
|
2026-08-16 01:27:30 +08:00
|
|
|
type Progress struct {
|
2026-08-17 10:10:14 +08:00
|
|
|
// TransactionID 事件所属的事务标识。
|
2026-08-16 01:27:30 +08:00
|
|
|
TransactionID string
|
2026-08-17 10:10:14 +08:00
|
|
|
// State 事件发生时的事务状态。
|
|
|
|
|
State transaction.State
|
|
|
|
|
// Message 面向用户的进度描述文本。
|
|
|
|
|
Message string
|
2026-08-16 01:27:30 +08:00
|
|
|
}
|
|
|
|
|
|
2026-08-17 10:10:14 +08:00
|
|
|
// ProgressReporter 进度事件回调,接收一次更新过程中的单条进度。
|
|
|
|
|
// 实现必须可安全地并发调用,且失败不应影响更新主流程。
|
2026-08-16 01:27:30 +08:00
|
|
|
type ProgressReporter func(Progress)
|
|
|
|
|
|
2026-08-17 10:10:14 +08:00
|
|
|
// operationLabel 根据输入类型返回本次操作的中文可读标签:重启类输入返回
|
|
|
|
|
// "restart",其余输入返回 "update"。该标签用于拼装进度与提交消息。
|
2026-08-16 01:27:30 +08:00
|
|
|
func operationLabel(inputType string) string {
|
|
|
|
|
if inputType == inputTypeCurrentRelease {
|
|
|
|
|
return "restart"
|
|
|
|
|
}
|
|
|
|
|
return "update"
|
|
|
|
|
}
|