ipptoolfile(5) OpenPrinting ipptoolfile(5)

ipptoolfile - formato de ficheiro do ipptool

O programa ipptool(1) aceita ficheiros de texto simples de formato livre que descrevem um ou mais pedidos IPP. Os comentários começam com o caractere "#" e continuam até ao fim da linha. Cada pedido fica rodeado por chavetas, por exemplo:

    # This is a comment
    {
      # The name of the test
      NAME "Print PDF File"
      # The request to send
      OPERATION Print-Job
      GROUP operation-attributes-tag
      ATTR charset attributes-charset utf-8
      ATTR language attributes-natural-language en
      ATTR uri printer-uri $uri
      ATTR name requesting-user-name $user
      ATTR mimeMediaType document-format application/pdf
      GROUP job-attributes-tag
      ATTR collection media-col {
        # US Letter plain paper from the "main" tray
        MEMBER collection media-size {
          MEMBER integer x-dimension 21590
          MEMBER integer y-dimension 27940
        }
        MEMBER integer media-top-margin 423
        MEMBER integer media-bottom-margin 423
        MEMBER integer media-left-margin 423
        MEMBER integer media-right-margin 423
        MEMBER keyword media-source "main"
        MEMBER keyword media-type "stationery"
      }
      FILE testfile.pdf
      # The response to expect
      STATUS successful-ok
      EXPECT job-id OF-TYPE integer WITH-VALUE >0
      EXPECT job-uri OF-TYPE uri
    }
    {
      # The name of the test
      NAME "Wait for Job to Complete"
      # The request to send
      OPERATION Get-Job-Attributes
      GROUP operation-attributes-tag
      ATTR charset attributes-charset utf-8
      ATTR language attributes-natural-language en
      ATTR uri printer-uri $uri
      ATTR integer job-id $job-id
      ATTR name requesting-user-name $user
      # The response to expect
      STATUS successful-ok
      EXPECT job-id OF-TYPE integer WITH-VALUE $job-id
      EXPECT job-uri OF-TYPE uri
      EXPECT job-state OF-TYPE enum WITH-VALUE >5 REPEAT-NO-MATCH
      EXPECT job-originating-user-name OF-TYPE name WITH-VALUE "$user"
      # Show the job state until completed...
      DISPLAY job-state
      DISPLAY job-state-reasons
    }

As seguintes directivas podem ser usadas fora de um test:

{ test }
Define um teste.
Define a variável nomeada para o valor fornecido. Isto é o equivalente a especificar -d variable-name=value na linha de comandos do ipptool(8).
Define a variável nomeada para o valor fornecido se esta não tiver já um valor.
Especifica uma string identificadora para o ficheiro actual.
Especifica se, por predefinição o ipptool(8) irá ignorar os errors e continuar com os testes subsequentes..
Inclui outro ficheiro de teste. A primeira forma inclui um ficheiro relativo ao ficheiro de teste actual, enquanto a segunda forma inclui um ficheiro do directório de inclusão do ipptool(8).
Inclui outro ficheiro de teste se a variável nomeada estiver definida. A primeira forma inclui um ficheiro relativo ao ficheiro de teste actual, enquanto a segunda forma inclui um ficheiro do directório de inclusão do ipptool(8).
Inclui outro ficheiro de teste se a variável nomeada não estiver definida. A primeira forma inclui um ficheiro relativo ao ficheiro de teste actual, enquanto a segunda forma inclui um ficheiro do directório de inclusão do ipptool(8).
Especifica que o lembrete do ficheiro de teste deve ser saltado quando a variável está ou não está definida.
especifica se os testes devem ser parados após um erro num ficheiro incluído.
Especifica que os teste irão, por predefinição, usar "Transfer-Encoding: chunked" para pedidos com ficheiro anexados e "Content-Length:" para pedidos sem ficheiros anexados.
Especifica que os teste irão, por predefinição, usar o cabeçalho "Transfer-Encoding: chunked" de HTTP/1.1. Esta é a predefinição e é equivalente a especificar -c na linha de comandos do ipptool(8). O suporte para pedidos chunked é necessário para conformidade com todas as versões de IPP.
Especifica que os teste irão, por predefinição, usar o cabeçalho "Content-Length:" de HTTP/1.0. Isto é equivalente a especificar -l na linha de comandos do ipptool(8). O suporte para pedidos content length é necessário para conformidade com todas as versões de IPP.
Especifica o número de versão IPP predefinido a usar para os testes que se seguem:

As seguintes directivas são compreendidas dentro de um test:

Adiciona um atributo ao pedido de teste. Etiquetas fora-de-banda (admin-define, delete-attribute, no-value, not-settable, unknown, unsupported) não têm valor. Os valores para outras etiquetas são delimitados pelo caractere vírgula (",") - vírgulas escapadas usando o caractere "\". Atributos e valores comuns estão listados no registro IANA IPP - veja referências em baixo.
Adiciona um atributo de coleção ao pedido de teste. Atributos de membro seguem a mesma sintaxe que os atributos regulares e podem eles próprios serem coleções aninhadas. Podem ser fornecidos quando necessário múltiplos valores de coleção separados por vírgulas.
Usa a compressão especificada nos dados do documento seguindo os atributos num pedido Print-Job ou Send-Document.
Specifies a delay in seconds before this test will be run. If two values are specified, the second value is used as the delay between repeated tests. A default repeat interval of 5 seconds is used if this directive is not provided.
Especifica que o valor do atributo nomeado deve fazer parte do resultado do relatório de teste.
Especifica que a resposta deve/pode/deve não inclui o atributo nomeado. Requerimentos adicionais podem ser adicionados como predicados - veja a secção "PREDICADOS DE EXPECT" para mais informação sobre predicados. Os nomes de atributos podem especificar atributos membros ao separar os nomes de atributo e membro com a barra inclinada para frente, por exemplo "media-col/media-size/x-dimension".
Especifica que a resposta deve/pode incluir o atributo nomeado e que todas as ocorrências desse atributo têm de corresponder aos predicados fornecidos.
Especifica um ficheiro a incluir no final do pedido. Isto é usado tipicamente quando se envia um ficheiro de impressão de teste.
Especifica a etiqueta de grupo para atributos subsequentes no pedido.
Especifica se o ipptool(8) irá ignorar erros e continuar com os testes subsequentes.
Especifica os testes de monitorização do estado da impressora a a correr em paralelo com a operação de teste. Os testes de monitorização irão correr até que todas as condições EXPECT estejam satisfeitas ou que a operação de teste principal seja completa, o que ocorrer primeiro.
Especifica o nome humanamente-legível do teste.
Especifica a operação a ser executada.
Especifica que o teste actual deve ser passado automaticamente quando a variável está ou não está definida.
Mostra a mensagem fornecida e espera que o utilizador carregue numa tecla para continuar.
Especifica o valor request-id a usar no pedido, seja um número inteiro ou a palavra "random" para usar um valor gerado aleatoriamente (a predefinição).
Especifica um caminho de recurso alternativo que é usado para o pedido HTTP POST. A predefinição é o recurso do URI fornecido ao programa ipptool(8).
Especifica que o teste actual deve ser saltado quando a variável está ou não está definida.
Especifica se o ipptool(8) irá saltar o teste actual se o teste anterior resultou em erro/falha.
Especifica um valor de código-de-estado da resposta esperada. Requerimentos adicionais podem ser adicionados como predicados - veja a secção "PREDICADOS DE ESTADO" para mais informação sobre predicados.
Especifica uma string de identificação para o teste actual.
Especifica que este teste irá usar "Transfer-Encoding: chunked" se tiver um ficheiro anexado ou "Content-Length:" caso contrário.
Especifica que este teste irá usar o cabeçalho HTTP/1.1 "Transfer-Encoding: chunked".
Especifica que este teste irá usar o cabeçalho HTTP/1.0 "Content-Length:".
Especifica o número de versão IPP a usar para este teste.

Os seguintes predicados são compreendidos pela directiva de teste EXPECT:

Requer que o atributo EXPECT tenha um número especificado de valores.
Define a variável para "1" quando a condição EXPECT corresponde. Um efeito secundário deste predicado é que EXPECT nunca irá falhar um teste.
Define a variável para "1" quando a condição EXPECT não corresponde. Um efeito secundário deste predicado é que EXPECT nunca irá falhar um teste.
Define a variável para o valor do atributo quando a condição EXPECT corresponde. Um efeito secundário deste predicado é que EXPECT nunca irá falhar um teste.
Mostra a mensagem especificada quando a condição EXPECT corresponde.
Faz com que as condições EXPECT sejam aplicadas apenas se a variável especificada esteja definida.
Faz com que as condições EXPECT sejam aplicadas apenas se a variável especificada não esteja definida.
Requer que o atributo EXPECT esteja na etiqueta do grupo especificado.
Requer que o atributo EXPECT use uma das etiquetas de valor especificadas. A maioria das etiquetas de valor também suportam a especificação de limites em parênteses, por exemplo "name(42)" iria permitir strings nameWith/WithoutLanguage até 42 octetos em comprimento, "name(4:MAX)" iria permitir strings nameWith/WithoutLanguage entre 4 e 255 octetos em comprimento, e "integer(-273:MAX)" iria permitir inteiros entre -273 e 2147483647.

Especifica o número máximo de vezes a repetir se o predicado REPEAT-MATCH ou REPEAT-NO-MATCH for especificado. O valor predefinido é 1000.
Especifica que o teste actual deve ser repetido quando a condição EXPECT corresponda ou não corresponda.
Requer que o atributo EXPECT tenha o mesmo número de valores que o atributo paralelo especificado.
Requer que todos os valores URI contenham um nome-de-máquina correspondente.
Requer que todos os valores URI contenham um recurso correspondente (incluindo / inicial).
Requer que todos os valores URI contenham um esquema correspondente.
Requer que todos os valores do atributo EXPECT correspondam literalmente à string. As comparações são sensíveis a maiúsculas/minúsculas.
Requer que todos os valores do atributo EXPECT correspondam aos número(s) ou comparação numérica. Ao comparar valores rangeOfInteger, os operadores "<" e ">" apenas verificam o limite superior do alcance.
Requer que todos os valores do atributo EXPECT correspondam ao valor booleano dado.
Requer que todos os valores do atributo EXPECT correspondam à expressão regular, a qual tem de estar em conformidade com a sintaxe de expressões regulares do POSIX. As comparações são sensíveis a maiúsculas/minúsculas.
Requer que todos os valores do atributo EXPECT sejam únicos. As comparações são sensíveis a maiúsculas/minúsculas. Apenas os atributos charset, collection, enum, integer, keyword, mimeMediaType, naturalLanguage, rangeOfInteger, resolution, uriScheme suportam este predicado.
Requer que pelo menos um dos valores URI contenha um nome-de-máquina correspondente.
Requer que pelo menos um dos valores URI contenha um recurso correspondente (incluindo / inicial).
Requer que pelo menos um dos valores URI contenha um esquema correspondente.
Requer que pelo menos um dos valores do atributo EXPECT corresponda literalmente à string. As comparações são sensíveis a maiúsculas/minúsculas.
Requer que pelo menos um valor do atributo EXPECT corresponda aos número(s) ou comparação numérica. Ao comparar valores rangeOfInteger, os operadores "<" e ">" apenas verificam o limite superior do alcance.
Requer que pelo menos um dos valores do atributo EXPECT corresponda ao valor booleano dado.
Requer que pelo menos um dos valores do atributo EXPECT corresponda à expressão regular, a qual tem de estar em conformidade com a sintaxe de expressões regulares do POSIX. As comparações são sensíveis a maiúsculas/minúsculas.
Requer que os valor(es) do atributo EXPECT correspondam aos valor(es) no atributo especificado. Por exemplo, "EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported" requer que o valor "job-sheets" esteja listado como um valor do atributo "job-sheets-supported".

Os seguintes predicados são compreendidos pela directiva de teste STATUS:

Define a variável para "1" quando STATUS corresponde. Um efeito secundário deste predicado é que este STATUS nunca irá falhar um teste.
Define a variável para "1" quando STATUS não corresponde. Um efeito secundário deste predicado é que este STATUS nunca irá falhar um teste.
Faz com que STATUS seja aplicado apenas se a variável especificada estiver definida.
Faz com que STATUS seja aplicado apenas se a variável especificada não estiver definida.

Especifica o número máximo de vezes a repetir. O valor predefinido é 1000.
Especifica que o teste actual deve ser repetido quando a resposta do código de estado corresponde ou não corresponde ao valor especificado pela directiva STATUS.

CÓDIGOS DE OPERAÇÃO

Códigos de operação correspondem aos números hexadecimais (0xHHHH) e nomes de RFC 8011 e outras especificações da extensão IPP. Aqui está uma lista completa dos nomes suportados pelo ipptool(8):

    Acknowledge-Document
    Acknowledge-Identify-Printer
    Acknowledge-Job
    Activate-Printer
    Add-Document-Images
    Allocate-Printer-Resources
    Cancel-Current-Job
    Cancel-Job
    Cancel-Jobs
    Cancel-My-Jobs
    Cancel-Resource
    Cancel-Subscription
    Close-Job
    Create-Job
    Create-Job-Subscriptions
    Create-Printer
    Create-Printer-Subscriptions
    Create-Resource
    Create-Resource-Subscriptions
    Create-System-Subscriptions
    CUPS-Accept-Jobs
    CUPS-Accept-Jobs
    CUPS-Add-Modify-Class
    CUPS-Add-Modify-Printer
    CUPS-Authenticate-Job
    CUPS-Create-Local-Printer
    CUPS-Delete-Class
    CUPS-Delete-Printer
    CUPS-Get-Classes
    CUPS-Get-Default
    CUPS-Get-Devices
    CUPS-Get-Document
    CUPS-Get-PPD
    CUPS-Get-PPDs
    CUPS-Get-Printers
    CUPS-Move-Job
    CUPS-Reject-Jobs
    CUPS-Set-Default
    Deactivate-Printer
    Deallocate-Printer-Resources
    Delete-Printer
    Deregister-Output-Device
    Disable-All-Printers
    Disable-Printer
    Enable-All-Printers
    Enable-Printer
    Fetch-Document
    Fetch-Job
    Get-Job-Attributes
    Get-Jobs
    Get-Next-Document-Data
    Get-Notifications
    Get-Output-Device-Attributes
    Get-Printer-Attributes
    Get-Printer-Support-Files
    Get-Printer-Supported-Values
    Get-Printers
    Get-Subscription-Attributes
    Get-Subscriptions
    Get-System-Attributes
    Get-System-Supported-Values
    Hold-Job
    Hold-New-Jobs
    Identify-Printer
    Install-Resource
    Pause-All-Printers
    Pause-All-Printers-After-Current-Job
    Pause-Printer
    Pause-Printer-After-Current-Job
    Print-Job
    Print-URI
    Promote-Job
    Purge-Jobs
    Register-Output-Device
    Release-Held-New-Jobs
    Release-Job
    Renew-Subscription
    Reprocess-Job
    Restart-Job
    Restart-Printer
    Restart-System
    Resubmit-Job
    Resume-All-Printers
    Resume-Job
    Resume-Printer
    Schedule-Job-After
    Send-Document
    Send-Hardcopy-Document
    Send-Notifications
    Send-Resource-Data
    Send-URI
    Set-Job-Attributes
    Set-Printer-Attributes
    Set-Resource-Attributes
    Set-System-Attributes
    Shutdown-All-Printers
    Shutdown-One-Printer
    Shutdown-Printer
    Startup-All-Printers
    Startup-One-Printer
    Startup-Printer
    Suspend-Current-Job
    Update-Active-Jobs
    Update-Document-Status
    Update-Job-Status
    Update-Output-Device-Attributes
    Validate-Document
    Validate-Job

CÓDIGOS DE ESTADO

Códigos de estado correspondem aos números hexadecimais (0xHHHH) e nomes de RFC 8011 e outras especificações da extensão IPP. Aqui está uma lista completa dos nomes suportados pelo ipptool(8):

    client-error-account-authorization-failed
    client-error-account-closed
    client-error-account-info-needed
    client-error-account-limit-reached
    client-error-attributes-not-settable
    client-error-attributes-or-values-not-supported
    client-error-bad-request
    client-error-charset-not-supported
    client-error-compression-error
    client-error-compression-not-supported
    client-error-conflicting-attributes
    client-error-document-access-error
    client-error-document-format-error
    client-error-document-format-not-supported
    client-error-document-password-error
    client-error-document-permission-error
    client-error-document-security-error
    client-error-document-unprintable-error
    client-error-forbidden
    client-error-gone
    client-error-ignored-all-notifications
    client-error-ignored-all-subscriptions
    client-error-not-authenticated
    client-error-not-authorized
    client-error-not-fetchable
    client-error-not-found
    client-error-not-possible
    client-error-print-support-file-not-found
    client-error-request-entity-too-large
    client-error-request-value-too-long
    client-error-timeout
    client-error-too-many-subscriptions
    client-error-uri-scheme-not-supported
    cups-error-account-authorization-failed
    cups-error-account-closed
    cups-error-account-info-needed
    cups-error-account-limit-reached
    cups-see-other
    redirection-other-site
    server-error-busy
    server-error-device-error
    server-error-internal-error
    server-error-job-canceled
    server-error-multiple-document-jobs-not-supported
    server-error-not-accepting-jobs
    server-error-operation-not-supported
    server-error-printer-is-deactivated
    server-error-service-unavailable
    server-error-temporary-error
    server-error-version-not-supported
    successful-ok
    successful-ok-but-cancel-subscription
    successful-ok-conflicting-attributes
    successful-ok-events-complete
    successful-ok-ignored-notifications
    successful-ok-ignored-or-substituted-attributes
    successful-ok-ignored-subscriptions
    successful-ok-too-many-events

Etiquetas de valor e grupo correspondem aos nomes de RFC 8011 e outras especificações da extensão IPP. Aqui estão as etiquetas de grupo:

    document-attributes-tag
    event-notification-attributes-tag
    job | job-attributes-tag
    operation | operation-attributes-tag
    printer | printer-attributes-tag
    resource-attributes-tag
    subscription-attributes-tag
    system-attributes-tag
    unsupported-attributes-tag

Aqui estão as etiquetas de valor:

    admin-define
    boolean
    charset
    collection | begCollection
    dateTime
    default
    delete-attribute
    enum
    integer
    keyword
    language | naturalLanguage
    mimetype | mimeMediaType
    name | nameWithLanguage | nameWithoutLanguage
    no-value
    not-settable
    octetString
    rangeOfInteger
    resolution
    text | textWithLanguage | textWithoutLanguage
    unknown
    unsupported
    uri
    uriScheme

O programa ipptool(8) mantém uma lista de variáveis que podem ser usadas em qualquer string literal ou valor de atributo ao especificar "$variable-name". à parte das variáveis definidas usando a opção -d ou a directiva DEFINE, as seguintes variáveis pré-definidas estão disponíveis:

$$
Insere um único caractere "$".
$ENV[name]
Insere o valor da variável de ambiente nomeada, ou uma string vazia se a variável de ambiente não estiver definida.
$date-current
Insere a data e hora actuais usando o formato ISO-8601 ("yyyy-mm-ddThh:mm:ssZ").
$date-start
Insere a data e hora iniciais usando o formato ISO-8601 ("yyyy-mm-ddThh:mm:ssZ").
$filename
Insere o nome de ficheiro fornecido ao ipptool(8) com a opção -f.
$filetype
Insere o tipo de media MIME para o nome de ficheiro fornecido ao ipptool(8) com a opção -f.
$hostname
Insere o nome-de-máquina a partir do URI fornecido ao ipptool(8).
$job-id
Insere último valor do atributo "job-id" retornado numa resposta de teste ou 0 se nenhum atributo "job-id" foi visto.
$job-uri
Insere último valor do atributo "job-uri" retornado numa resposta de teste ou uma string vazia se nenhum atributo "job-uri" foi visto.
$notify-subscription-id
Insere último valor do atributo "notify-subscription-id" retornado numa resposta de teste ou 0 se nenhum atributo "notify-subscription-id" foi visto.
$port
Insere o número de porto a partir do URI fornecido ao ipptool(8).
$resource
Inserts the resource path from the URI provided to ipptool(8).
$scheme
Insere o esquema a partir do URI fornecido ao ipptool(8).
$uri
Insere o URI fornecido para ipptool(8).
$uriuser
Insere o nome-de-utilizador a partir do URI fornecido ao ipptool(8). Se algum.
$user
Insere o nome de login do utilizador actual.

ipptool(1), IANA IPP Registry (https://www.iana.org/assignments/ipp-registrations), PWG Internet Printing Protocol Workgroup (https://www.pwg.org/ipp), RFC 8011 (https://datatracker.ietf.org/doc/html/rfc8011)

Copyright © 2021-2023 by OpenPrinting.

CUPS 2021-09-20