diff options
| -rw-r--r-- | drive/share.go | 15 | ||||
| -rw-r--r-- | gdrive.go | 6 | ||||
| -rw-r--r-- | handlers_drive.go | 1 | 
3 files changed, 20 insertions, 2 deletions
| diff --git a/drive/share.go b/drive/share.go index e942c17..36ffb47 100644 --- a/drive/share.go +++ b/drive/share.go @@ -2,6 +2,7 @@ package drive  import (  	"fmt" +	"strings"  	"google.golang.org/api/drive/v3"  	"io"  	"text/tabwriter" @@ -15,18 +16,28 @@ type ShareArgs struct {  	Email        string  	Domain       string  	Discoverable bool +	DisableNotification bool  }  func (self *Drive) Share(args ShareArgs) error {  	permission := &drive.Permission{  		AllowFileDiscovery: args.Discoverable,  		Role:               args.Role, -		Type:               args.Type, +		Type:               strings.ToLower(args.Type),  		EmailAddress:       args.Email,  		Domain:             args.Domain,  	} -	_, err := self.service.Permissions.Create(args.FileId, permission).Do() +	call := self.service.Permissions.Create(args.FileId, permission) + +	if permission.Type == "user" || permission.Type == "group" { +		if args.DisableNotification { +			call = call.SendNotificationEmail(false); +		} +	} + +	_, err := call.Do() +  	if err != nil {  		return fmt.Errorf("Failed to share file: %s", err)  	} @@ -435,6 +435,12 @@ func main() {  						Description: "Delete all sharing permissions (owner roles will be skipped)",  						OmitValue:   true,  					}, +					cli.BoolFlag{ +						Name:        "disableNotification", +						Patterns:    []string{"--no-notification"}, +						Description: "Disable notification e-mail when sharing to user or group. Cannot be disabled for ownership transfer.", +						OmitValue:   true, +					},  				),  			},  		}, diff --git a/handlers_drive.go b/handlers_drive.go index 7bda872..fbf5a2f 100644 --- a/handlers_drive.go +++ b/handlers_drive.go @@ -250,6 +250,7 @@ func shareHandler(ctx cli.Context) {  		Email:        args.String("email"),  		Domain:       args.String("domain"),  		Discoverable: args.Bool("discoverable"), +		DisableNotification: args.Bool("disableNotification"),  	})  	checkErr(err)  } | 
