Formats an ``adduser`` command.

    :param username: User name.
    :type username: unicode | str
    :param uid: Optional user id to use.
    :type uid: long | int
    :param system: Create a system user account.
    :type system: bool
    :param no_login: Disable the login for this user. Not compatible with CentOS. Implies setting '--no-create-home',
      and ``no_password``.
    :type no_login: bool
    :param no_password: Disable the password for this user. Not compatible with CentOS.
    :type no_password: bool
    :param group: Create a group along with the user. Not compatible with CentOS.
    :type group: bool
    :param gecos: Set GECOS information in order to suppress an interactive prompt. On CentOS, use ``__comment``
      instead.
    :type gecos: unicode | str
    :param kwargs: Additional keyword arguments which are converted to the command line.
    :return: A formatted ``adduser`` command with arguments.
    :rtype: unicode | str

def adduser(username, uid=None, system=False, no_login=True, no_password=False, group=False, gecos=None, **kwargs):
    """
    Formats an ``adduser`` command.

    :param username: User name.
    :type username: unicode | str
    :param uid: Optional user id to use.
    :type uid: long | int
    :param system: Create a system user account.
    :type system: bool
    :param no_login: Disable the login for this user. Not compatible with CentOS. Implies setting '--no-create-home',
      and ``no_password``.
    :type no_login: bool
    :param no_password: Disable the password for this user. Not compatible with CentOS.
    :type no_password: bool
    :param group: Create a group along with the user. Not compatible with CentOS.
    :type group: bool
    :param gecos: Set GECOS information in order to suppress an interactive prompt. On CentOS, use ``__comment``
      instead.
    :type gecos: unicode | str
    :param kwargs: Additional keyword arguments which are converted to the command line.
    :return: A formatted ``adduser`` command with arguments.
    :rtype: unicode | str
    """
    return _format_cmd('adduser', username, __system=bool(system), __uid=uid, __group=bool(group), __gid=uid,
                       no_login=(no_login, _NO_CREATE_HOME, _NO_LOGIN),
                       __disabled_password=no_login or bool(no_password),
                       __gecos=gecos, **kwargs)