def register_deliver_command(self, deliver_func):
        """
        Add 'deliver' command for transferring a project to another user.,
        :param deliver_func: function to run when user choses this option
        """
        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)