diff options
Diffstat (limited to 'drive/changes.go')
| -rw-r--r-- | drive/changes.go | 158 | 
1 files changed, 79 insertions, 79 deletions
| diff --git a/drive/changes.go b/drive/changes.go index 1d9a89d..ffd7824 100644 --- a/drive/changes.go +++ b/drive/changes.go @@ -1,103 +1,103 @@  package drive  import ( -    "fmt" -    "io" -    "text/tabwriter" -    "google.golang.org/api/drive/v3" +	"fmt" +	"google.golang.org/api/drive/v3" +	"io" +	"text/tabwriter"  )  type ListChangesArgs struct { -    Out io.Writer -    PageToken string -    MaxChanges int64 -    Now bool -    NameWidth int64 -    SkipHeader bool +	Out        io.Writer +	PageToken  string +	MaxChanges int64 +	Now        bool +	NameWidth  int64 +	SkipHeader bool  }  func (self *Drive) ListChanges(args ListChangesArgs) error { -    if args.Now { -        pageToken, err := self.GetChangesStartPageToken() -        if err != nil { -            return err -        } - -        fmt.Fprintf(args.Out, "Page token: %s\n", pageToken) -        return nil -    } - -    changeList, err := self.service.Changes.List(args.PageToken).PageSize(args.MaxChanges).RestrictToMyDrive(true).Fields("newStartPageToken", "nextPageToken", "changes(fileId,removed,time,file(id,name,md5Checksum,mimeType,createdTime,modifiedTime))").Do() -    if err != nil { -        return fmt.Errorf("Failed listing changes: %s", err) -    } - -    PrintChanges(PrintChangesArgs{ -        Out: args.Out, -        ChangeList: changeList, -        NameWidth: int(args.NameWidth), -        SkipHeader: args.SkipHeader, -    }) - -    return nil +	if args.Now { +		pageToken, err := self.GetChangesStartPageToken() +		if err != nil { +			return err +		} + +		fmt.Fprintf(args.Out, "Page token: %s\n", pageToken) +		return nil +	} + +	changeList, err := self.service.Changes.List(args.PageToken).PageSize(args.MaxChanges).RestrictToMyDrive(true).Fields("newStartPageToken", "nextPageToken", "changes(fileId,removed,time,file(id,name,md5Checksum,mimeType,createdTime,modifiedTime))").Do() +	if err != nil { +		return fmt.Errorf("Failed listing changes: %s", err) +	} + +	PrintChanges(PrintChangesArgs{ +		Out:        args.Out, +		ChangeList: changeList, +		NameWidth:  int(args.NameWidth), +		SkipHeader: args.SkipHeader, +	}) + +	return nil  }  func (self *Drive) GetChangesStartPageToken() (string, error) { -    res, err := self.service.Changes.GetStartPageToken().Do() -    if err != nil { -        return "", fmt.Errorf("Failed getting start page token: %s", err) -    } +	res, err := self.service.Changes.GetStartPageToken().Do() +	if err != nil { +		return "", fmt.Errorf("Failed getting start page token: %s", err) +	} -    return res.StartPageToken, nil +	return res.StartPageToken, nil  }  type PrintChangesArgs struct { -    Out io.Writer -    ChangeList *drive.ChangeList -    NameWidth int -    SkipHeader bool +	Out        io.Writer +	ChangeList *drive.ChangeList +	NameWidth  int +	SkipHeader bool  }  func PrintChanges(args PrintChangesArgs) { -    w := new(tabwriter.Writer) -    w.Init(args.Out, 0, 0, 3, ' ', 0) - -    if !args.SkipHeader { -        fmt.Fprintln(w, "Id\tName\tAction\tTime") -    } - -    for _, c := range args.ChangeList.Changes { -        var name string -        var action string - -        if c.Removed { -            action = "remove" -        } else { -            name = c.File.Name -            action = "update" -        } - -        fmt.Fprintf(w, "%s\t%s\t%s\t%s\n", -            c.FileId, -            truncateString(name, args.NameWidth), -            action, -            formatDatetime(c.Time), -        ) -    } - -    if len(args.ChangeList.Changes) > 0 { -        w.Flush() -        pageToken, hasMore := nextChangesPageToken(args.ChangeList) -        fmt.Fprintf(args.Out, "\nToken: %s, more: %t\n", pageToken, hasMore) -    } else { -        fmt.Fprintln(args.Out, "No changes") -    } +	w := new(tabwriter.Writer) +	w.Init(args.Out, 0, 0, 3, ' ', 0) + +	if !args.SkipHeader { +		fmt.Fprintln(w, "Id\tName\tAction\tTime") +	} + +	for _, c := range args.ChangeList.Changes { +		var name string +		var action string + +		if c.Removed { +			action = "remove" +		} else { +			name = c.File.Name +			action = "update" +		} + +		fmt.Fprintf(w, "%s\t%s\t%s\t%s\n", +			c.FileId, +			truncateString(name, args.NameWidth), +			action, +			formatDatetime(c.Time), +		) +	} + +	if len(args.ChangeList.Changes) > 0 { +		w.Flush() +		pageToken, hasMore := nextChangesPageToken(args.ChangeList) +		fmt.Fprintf(args.Out, "\nToken: %s, more: %t\n", pageToken, hasMore) +	} else { +		fmt.Fprintln(args.Out, "No changes") +	}  }  func nextChangesPageToken(cl *drive.ChangeList) (string, bool) { -    if cl.NextPageToken != "" { -        return cl.NextPageToken, true -    } +	if cl.NextPageToken != "" { +		return cl.NextPageToken, true +	} -    return cl.NewStartPageToken, false +	return cl.NewStartPageToken, false  } | 
