79 lines
1.8 KiB
Go
79 lines
1.8 KiB
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"gitea.maximumdirect.net/eric/distributor/internal/publish"
|
|
)
|
|
|
|
type runSummary struct {
|
|
dryRun bool
|
|
planned int
|
|
publishNew int
|
|
replaceOlder int
|
|
forceReplace int
|
|
skipped int
|
|
failures int
|
|
fixedPath int
|
|
}
|
|
|
|
func (s *runSummary) recordPlan(action publish.Action) {
|
|
s.planned++
|
|
switch action {
|
|
case publish.ActionPublishNew:
|
|
s.publishNew++
|
|
case publish.ActionReplaceOlder:
|
|
s.replaceOlder++
|
|
case publish.ActionForceReplace:
|
|
s.forceReplace++
|
|
case publish.ActionSkipSame, publish.ActionSkipDestinationNewer:
|
|
s.skipped++
|
|
}
|
|
}
|
|
|
|
func (s *runSummary) recordFailure() {
|
|
s.failures++
|
|
}
|
|
|
|
func (s *runSummary) recordFixedPath() {
|
|
s.fixedPath++
|
|
}
|
|
|
|
func (s runSummary) Line() string {
|
|
status := "ok"
|
|
if s.failures > 0 {
|
|
status = "failed"
|
|
}
|
|
return fmt.Sprintf("Final status: %s planned=%d publish_new=%d replace_older=%d force_replace=%d skipped=%d failed=%d dry_run=%t fixed_path=%d", status, s.planned, s.publishNew, s.replaceOlder, s.forceReplace, s.skipped, s.failures, s.dryRun, s.fixedPath)
|
|
}
|
|
|
|
type runSummaryResult struct {
|
|
Status string `json:"status"`
|
|
Planned int `json:"planned"`
|
|
PublishNew int `json:"publish_new"`
|
|
ReplaceOlder int `json:"replace_older"`
|
|
ForceReplace int `json:"force_replace"`
|
|
Skipped int `json:"skipped"`
|
|
Failed int `json:"failed"`
|
|
DryRun bool `json:"dry_run"`
|
|
FixedPath int `json:"fixed_path"`
|
|
}
|
|
|
|
func (s runSummary) Result() runSummaryResult {
|
|
status := "ok"
|
|
if s.failures > 0 {
|
|
status = "failed"
|
|
}
|
|
return runSummaryResult{
|
|
Status: status,
|
|
Planned: s.planned,
|
|
PublishNew: s.publishNew,
|
|
ReplaceOlder: s.replaceOlder,
|
|
ForceReplace: s.forceReplace,
|
|
Skipped: s.skipped,
|
|
Failed: s.failures,
|
|
DryRun: s.dryRun,
|
|
FixedPath: s.fixedPath,
|
|
}
|
|
}
|