|
4 | 4 |
|
5 | 5 | package cli |
6 | 6 |
|
7 | | -import "fmt" |
| 7 | +import ( |
| 8 | + "fmt" |
| 9 | + "strconv" |
| 10 | + "strings" |
| 11 | + "time" |
| 12 | + |
| 13 | + "github.com/scaleway/scaleway-cli/vendor/github.com/dustin/go-humanize" |
| 14 | +) |
8 | 15 |
|
9 | 16 | var cmdCS = &Command{ |
10 | 17 | Exec: runCS, |
@@ -37,13 +44,28 @@ func runCS(cmd *Command, args []string) error { |
37 | 44 | if err != nil { |
38 | 45 | return fmt.Errorf("Unable to get your containers: %v", err) |
39 | 46 | } |
40 | | - printRawMode(cmd.Streams().Stdout, *containers) |
| 47 | + for _, container := range containers.Containers { |
| 48 | + fmt.Fprintf(cmd.Streams().Stdout, "s3://%s\n", container.Name) |
| 49 | + } |
41 | 50 | return nil |
42 | 51 | } |
43 | | - datas, err := cmd.API.GetContainerDatas(args[0]) |
| 52 | + container := strings.Replace(args[0], "s3://", "", 1) |
| 53 | + datas, err := cmd.API.GetContainerDatas(container) |
44 | 54 | if err != nil { |
45 | | - return fmt.Errorf("Unable to get your data from %s: %v", args[1], err) |
| 55 | + return fmt.Errorf("Unable to get your data from %s: %v", container, err) |
| 56 | + } |
| 57 | + for _, data := range datas.Container { |
| 58 | + t, err := time.Parse(time.RFC3339, data.LastModified) |
| 59 | + if err != nil { |
| 60 | + return err |
| 61 | + } |
| 62 | + year, month, day := t.Date() |
| 63 | + hour, minute, _ := t.Clock() |
| 64 | + size, err := strconv.Atoi(data.Size) |
| 65 | + if err != nil { |
| 66 | + return err |
| 67 | + } |
| 68 | + fmt.Fprintf(cmd.Streams().Stdout, "%-4d-%02d-%02d %02d:%02d %8s s3://%s/%s\n", year, month, day, hour, minute, humanize.Bytes(uint64(size)), container, data.Name) |
46 | 69 | } |
47 | | - printRawMode(cmd.Streams().Stdout, *datas) |
48 | 70 | return nil |
49 | 71 | } |
0 commit comments