code: def register_deliver_command(self, deliver_func):
          
          description = "Initiate delivery of a project to another user. Removes other user's current permissions. " \
                        "Send message to D4S2 service to send email and allow access to the project once user " \
                        "acknowledges receiving the data."
          deliver_parser = self.subparsers.add_parser('deliver', description=description)
          add_project_name_or_id_arg(deliver_parser)
          user_or_email = deliver_parser.add_mutually_exclusive_group(required=True)
          add_user_arg(user_or_email)
          add_email_arg(user_or_email)
          add_share_usernames_arg(deliver_parser)
          add_share_emails_arg(deliver_parser)
          _add_copy_project_arg(deliver_parser)
          _add_resend_arg(deliver_parser, "Resend delivery")
          include_or_exclude = deliver_parser.add_mutually_exclusive_group(required=False)
          _add_include_arg(include_or_exclude)
          _add_exclude_arg(include_or_exclude)
          _add_message_file(deliver_parser, "Filename containing a message to be sent with the delivery. "
                                            "Pass - to read from stdin.")
          deliver_parser.set_defaults(func=deliver_func)
docs: Add 'deliver' command for transferring a project to another user.,
          :param deliver_func: function to run when user choses this option