Release URBM 2026.06.15.r011
This commit is contained in:
@@ -2,6 +2,7 @@ package restic
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
@@ -217,13 +218,27 @@ func (r *Runner) stats(ctx context.Context, repo model.Repository, args []string
|
||||
if err := r.run(ctx, repo, args, nil, &output); err != nil {
|
||||
return Stats{}, err
|
||||
}
|
||||
var stats Stats
|
||||
if err := json.Unmarshal(output, &stats); err != nil {
|
||||
stats, err := decodeStats(output)
|
||||
if err != nil {
|
||||
return Stats{}, fmt.Errorf("decode repository stats: %w", err)
|
||||
}
|
||||
return stats, nil
|
||||
}
|
||||
|
||||
func decodeStats(output []byte) (Stats, error) {
|
||||
for index := len(output) - 1; index >= 0; index-- {
|
||||
if output[index] != '{' {
|
||||
continue
|
||||
}
|
||||
var stats Stats
|
||||
decoder := json.NewDecoder(bytes.NewReader(output[index:]))
|
||||
if err := decoder.Decode(&stats); err == nil {
|
||||
return stats, nil
|
||||
}
|
||||
}
|
||||
return Stats{}, errors.New("no valid statistics object in Restic output")
|
||||
}
|
||||
|
||||
func (r *Runner) List(ctx context.Context, repo model.Repository, snapshot, path string) ([]map[string]any, error) {
|
||||
args := []string{"ls", snapshot, "--json"}
|
||||
if path != "" {
|
||||
|
||||
Reference in New Issue
Block a user