diff options
Diffstat (limited to 'drive/info.go')
| -rw-r--r-- | drive/info.go | 49 | 
1 files changed, 49 insertions, 0 deletions
diff --git a/drive/info.go b/drive/info.go new file mode 100644 index 0000000..f5f5602 --- /dev/null +++ b/drive/info.go @@ -0,0 +1,49 @@ +package drive + +import ( +    "fmt" +    "google.golang.org/api/drive/v3" +) + +type FileInfoArgs struct { +    Id string +    SizeInBytes bool +} + +func (self *Drive) Info(args FileInfoArgs) { +    f, err := self.service.Files.Get(args.Id).Fields("id", "name", "size", "createdTime", "modifiedTime", "md5Checksum", "mimeType", "parents", "shared", "description").Do() +    errorF(err, "Failed to get file: %s", err) + +    PrintFileInfo(PrintFileInfoArgs{ +        File: f, +        SizeInBytes: args.SizeInBytes, +    }) +} + +type PrintFileInfoArgs struct { +    File *drive.File +    SizeInBytes bool +} + +func PrintFileInfo(args PrintFileInfoArgs) { +    f := args.File + +    items := []kv{ +        kv{"Id", f.Id}, +        kv{"Name", f.Name}, +        kv{"Description", f.Description}, +        kv{"Mime", f.MimeType}, +        kv{"Size", formatSize(f.Size, args.SizeInBytes)}, +        kv{"Created", formatDatetime(f.CreatedTime)}, +        kv{"Modified", formatDatetime(f.ModifiedTime)}, +        kv{"Md5sum", f.Md5Checksum}, +        kv{"Shared", formatBool(f.Shared)}, +        kv{"Parents", formatList(f.Parents)}, +    } + +    for _, item := range items { +        if item.value() != "" { +            fmt.Printf("%s: %s\n", item.key(), item.value()) +        } +    } +}  | 
