Share Google Drive Files with Apps Script

I wrote a little Google Script that saves Gmail attachments to Drive and shares the saved files with users based on rules defined in the message body itself. Here’s a sample rule:

# view@example.com, v #
# comment2@example.com, comment@example.com, c#
# edit1@example.com, edit2@example.com, e #

In the above case, the file(s) would be shared with all these users but the sharing permissions would be different. The user view@example can only view (v) the document, the users edit@example have editing permissions while others have commenting permissions.

function ShareDriveFiles() {
  
  var threads = GmailApp.search("subject:#share");
  
  for (var t in threads) {
    
    var messages = threads[t].getMessages();
    
    for (var m in messages) {
      
      var attachments = messages[m].getAttachments();
      
      if (attachments.length) {
        
        var body = messages[m].getPlainBody().replace(/\s*/g, "").toLowerCase();
        
        for (var a in attachments) {
          
          var rules = body.match(/(#[^#]+,[e|v|c]#)/g);
          
          if (rules) {
            
            var file = DriveApp.createFile(attachments[a]);
            
            for (var r in rules) {    
          
              var line = rules[r].substr(1, rules[r].length-2).split(",");
              for (var s=0; s<line.length-1; s++) {
                               
                switch (line[line.length-1]) {
                  case "e" : file.addEditor(line[s]); break;
                  case "v" : file.addViewer(line[s]); break;
                  case "c" : file.addCommenter(line[s]); break;
                  default: break;
                } 
              }               
            } 
          } 
        }  
      } 
    } 
  } 
}