Files
kopia/cli/command_content_show.go
Jarek Kowalski d3a6421213 cli: make sure we don't run maintenance as part of read-only actions (#769)
* cli: make sure we don't run maintenance as part of read-only actions

* cli: classified some actions that use *repo.DirectRepository as read-only too
2021-01-05 21:55:02 -08:00

42 lines
987 B
Go

package cli
import (
"bytes"
"context"
"github.com/pkg/errors"
"github.com/kopia/kopia/repo"
"github.com/kopia/kopia/repo/content"
)
var (
contentShowCommand = contentCommands.Command("show", "Show contents by ID.").Alias("cat")
contentShowIDs = contentShowCommand.Arg("id", "IDs of contents to show").Required().Strings()
)
func runContentShowCommand(ctx context.Context, rep *repo.DirectRepository) error {
for _, contentID := range toContentIDs(*contentShowIDs) {
if err := contentShow(ctx, rep, contentID); err != nil {
return err
}
}
return nil
}
func contentShow(ctx context.Context, r *repo.DirectRepository, contentID content.ID) error {
data, err := r.Content.GetContent(ctx, contentID)
if err != nil {
return errors.Wrapf(err, "error getting content %v", contentID)
}
return showContent(bytes.NewReader(data))
}
func init() {
setupShowCommand(contentShowCommand)
contentShowCommand.Action(directRepositoryReadAction(runContentShowCommand))
}