ipptoolfile(5) Format de fichier ipptool

DESCRIPTION

Le programme ipptool(1) accepte les fichiers, sans format particulier en texte pur, qui décrivent une ou plusieurs requêtes IPP. Les commentaires commencent par le caractère « # » et se terminent à la fin de la ligne. Chaque requête est entourée par des accolades, par exemple :
    # Ceci est un commentaire
    {
      # Le nom du test
      NOM « Fichier d’impression PostScript »
      # La requête à envoyer
      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
      FILE testfile.ps
      # La réponse à attendre
      STATUS successful-ok
      EXPECT job-id OF-TYPE integer WITH-VALUE >0
      EXPECT job-uri OF-TYPE uri
    }
    {
      # Le nom du test
      NAME "Obtenir les attributs du travail PostScript"
      # La requête à envoyer
      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
      # La réponse à attendre
      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 3,4,5,6,7,8,9
      EXPECT job-originating-user-name OF-TYPE name WITH-VALUE "$user"
    }

DIRECTIVES PRINCIPALES

Les directives suivantes peuvent être utilisées en dehors d’un test :
{ test }
Définir un test.
DEFINE nom_variable valeur
Définir la variable dénommée à la valeur donnée. Cela est équivalent à indiquer « -d nom_variable=valeur » sur la ligne de commande de ipptool(8).
DEFINE-DEFAULT nom_variable valeur
Définir la variable nommée à la valeur donnée si elle n’a pas déjà une valeur.
FILE-ID "identificateur"
Définir la chaîne d’identificateur pour le fichier actuel.
IGNORE-ERRORS yes
IGNORE-ERRORS no
Indiquer si, par défaut, ipptool(8) ignorera les erreurs et poursuivra avec les tests suivants.
INCLUDE "nom_fichier"
INCLUDE <nom_fichier>
Inclure un autre fichier de test. La première façon inclut un fichier relatif au fichier de test actuel, tandis que la seconde inclut un fichier du répertoire inclus de ipptool(8).
INCLUDE-IF-DEFINED nom "nom_fichier"
INCLUDE-IF-DEFINED nom <nom_fichier>
Inclure un autre fichier de test si la variable nommée est définie. La première façon inclut un fichier relatif à l’actuel fichier de test, tandis que la seconde inclut un fichier du répertoire inclus de ipptool(8).
INCLUDE-IF-NOT-DEFINED nom "nom_fichier"
INCLUDE-IF-NOT-DEFINED nom <nom_fichier>
Inclure un autre fichier de test si la variable nommée n’est pas définie. La première façon inclut un fichier relatif à l’actuel fichier de test, tandis que la seconde inclut un fichier du répertoire inclus de ipptool(8).
SKIP-IF-DEFINED nom_variable
SKIP-IF-NOT-DEFINED nom_variable
Indiquer que le reste du fichier de test devra être ignoré si la variable est ou n’est pas définie.
STOP-AFTER-INCLUDE-ERROR no
STOP-AFTER-INCLUDE-ERROR yes
Indiquer si les tests seront arrêtés après une erreur dans un fichier inclus
TRANSFER auto
Indiquer que ces tests utiliseront, par défaut, « Transfer-Encoding: chunked » lors de requêtes avec fichiers joints et « Content-Length: » pour celles sans fichier joint.
TRANSFER chunked
Indiquer que ces tests utiliseront, par défaut, l’en-tête de HTTP/1.1 « Transfer-Encoding: chunked ». C’est le comportement par défaut et équivalent à indiquer -c sur la ligne de commande de ipptool(8). La prise en charge pour les requêtes partielles est exigée pour conformité avec toutes les versions d’IPP.
TRANSFER taille
Indiquer que ces tests utiliseront, par défaut, l’en-tête de HTTP/1.0 « Content-Length: ». C’est équivalent à indiquer « -l » sur la ligne de commande de ipptool(8). La prise en charge pour les requêtes sur la taille de contenu est exigée pour conformité avec toutes les versions d’IPP.
VERSION 1.0
VERSION 1.1
VERSION 2.0
VERSION 2.1
VERSION 2.2
Indiquer le numéro de version d’IPP à utiliser par défaut pour les tests ci-dessous.

DIRECTIVES DE TEST

Les directives suivantes sont comprises dans un test :
ATTR étiquette nom_attribut valeur(s)
Ajouter un attribut à la requête de test. Les valeurs sont séparées par des virgules « , » — le caractère de protection des virgules est« " ».
ATTR collection nom_attribut { MEMBER étiquette nom_membre valeur(s) ... } [ ... ,{ ... } ]
Ajouter un attribut d’ensemble à la requête de test. Les attributs de membre suivent la même syntaxe que les attributs normaux et peuvent être eux-mêmes des ensembles emboités. Plusieurs valeurs d’ensemble peuvent être fournies si nécessaire, séparées par des virgules.
COMPRESSION deflate
COMPRESSION gzip
COMPRESSION none
Utiliser la compression indiquée pour les données du document qui suit les attributs dans une tâche d’impression ou une requête d’envoi de document.
DELAY secondes
Définir le temps d’attente avant l’exécution du test.
DISPLAY nom_attribut
Indiquer que la valeur de l’attribut nommé doit être affiché comme faisant partie du compte-rendu de test.
EXPECT nom_attribut [ prédicat(s) ]
EXPECT ?nom_attribut prédicat(s)
EXPECT !nom_attribut
Indiquer que la réponse doit, ou peut, ou ne doit pas inclure l’attribut nommé. Des exigences supplémentaires peuvent être ajoutées comme prédicats — consultez la section « PRÉDICATS EXPECT » pour davantage d’information sur les prédicats. Les noms d’attribut peuvent indiquer les attributs des membres en séparant les noms d’attribut et de membre avec une barre oblique, par exemple, « media-col/media-size/x-dimension ».
EXPECT-ALL attribute-name [ predicate(s) ]
EXPECT-ALL ?attribute-name predicate(s)
Specifies that the response must/may include the named attribute and that all occurrences of that attribute must match the given predicates.
FILE nom_fichier
Indiquer un fichier à ajouter à la fin de la requête. Cela est habituellement utilisé lors de l’envoi d’un fichier de test d’impression.
GROUP étiquette
Indiquer l’étiquette de groupe pour les attributs suivants dans la requête.
IGNORE-ERRORS yes
IGNORE-ERRORS no
Indiquer si ipptool(8) ignorera les erreurs et continuera avec les tests suivants.
NAME "chaîne_littérale"
Décrire le nom de test de manière compréhensible aux utilisateurs.
OPERATION code_opération
Indiquer les opérations à effectuer.
PAUSE "message"
Afficher le message fourni et attendre l’appui d’une touche par l’utilisateur pour continuer.
REQUEST-ID nombre
REQUEST-ID aléatoire
Indiquer la valeur d’identifiant de requête à utiliser dans la requête, soit un nombre entier soit le mot « random » pour utiliser une valeur calculée aléatoirement (comportement par défaut).
RESOURCE chemin
Indiquer un chemin de ressource alternatif pour la requête HTTP POST. Par défaut, c’est la ressource de l’URI fourni par le programme ipptool(8).
SKIP-IF-DEFINED nom_variable
SKIP-IF-NOT-DEFINED nom_variable
Indiquer que l’actuel test sera omis quand la variable est ou n’est pas définie.
SKIP-PREVIOUS-ERROR yes
SKIP-PREVIOUS-ERROR no
Indiquer si ipptool(8) ignorera le test actuel si le test précédent se termine sur une erreur ou un succès.
STATUS code_état [ prédicat ]
Indiquer la valeur attendue du code d’état de la réponse. Des exigences supplémentaires peuvent être ajoutées comme prédicats — consultez la section « PREDICATS STATUS » pour davantage d’information sur les prédicats.
TEST-ID "identificateur"
Définir une chaîne d’identificateur pour le test actuel.
TRANSFER auto
Indiquer que le test utilisera « Transfer-Encoding: chunked » si un fichier est joint ou  «Content-Length: » sinon.
TRANSFER chunked
Indiquer si le test utilisera les en-têtes HTTP 1.1 « Transfer-Encoding: chunked ».
TRANSFER taille
Indiquer que ce test utilisera les en-têtes HTTP/1.0 « Content-Length: ».
VERSION 1.0
VERSION 1.1
VERSION 2.0
VERSION 2.1
VERSION 2.2
Indiquer le numéro de version d’IPP à utiliser pour ce test.

PRÉDICATS EXPECT

Les prédicats ci-dessous sont compris suivant la directive de test EXPECT :
COUNT nombre
Exiger que l’attribut d’EXPECT ait le nombre indiqué de valeurs.
DEFINE-MATCH nom_variable
Définir la variable à 1 quand la condition d’EXPECT correspond. Un effet de bord de ce prédicat est que EXPECT n’échouera jamais à un test.
DEFINE-NO-MATCH nom_variable
Définir la variable à 1 quand la condition d’EXPECT ne correspond pas. Un effet de bord de ce prédicat est que EXPECT n’échouera jamais à un test.
DEFINE-VALUE nom_variable
Définir la variable à la valeur de l’attribut quand la condition d’EXPECT correspond. Un effet de bord de ce prédicat est que EXPECT n’échouera jamais à un test.
IF-DEFINED nom_variable
Appliquer les conditions d’EXPECT seulement si la variable indiquée est définie.
IF-NOT-DEFINED nom_variable
Appliquer les conditions d’EXPECT seulement si la variable indiquée n’est pas définie.
IN-GROUP étiquette
Exiger que l’attribut d’EXPECT soit dans l’étiquette de groupe indiquée.
OF-TYPE étiquette[,étiquette,...]
Exiger que l’attribut d’EXPECT utilise la valeur d’étiquette(s) indiquée.
REPEAT-LIMIT nombre

Définir le nombre maximal de répétitions si le prédicat REPEAT-MATCH ou REPEAT-NO-MATCH est indiqué. La valeur par défaut est 1000.
REPEAT-MATCH
REPEAT-NO-MATCH
Indiquer que l’actuel test doit être recommencé si la condition EXPECT correspond ou pas.
SAME-COUNT-AS nom_attribut
Exiger que l’attribut d’EXPECT ait le même nombre de valeurs que l’attribut similaire indiqué.
WITH-ALL-HOSTNAMES "chaîne_littérale"
WITH-ALL-HOSTNAMES "/exp_rationnelle/"
Exiger que toutes les valeurs d’URI contiennent un nom d’hôte correspondant.
WITH-ALL-RESOURCES "chaîne_littérale"
WITH-ALL-RESOURCES "/exp_rationnelle/"
Exiger que toutes les valeurs d’URI contiennent une ressource correspondante y compris le « / » de début)
WITH-ALL-SCHEMES "chaîne_littérale"
WITH-ALL-SCHEMES "/exp_rationnelle/"
Exiger que toutes les valeurs d’URI contiennent un schéma correspondant.
WITH-ALL-VALUES "chaîne_littérale"
Exiger que toutes les valeurs de l’attribut d’EXPECT correspondent à la chaîne littérale. Les comparaisons sont sensibles à la casse.
WITH-ALL-VALUES <nombre
WITH-ALL-VALUES =nombre
WITH-ALL-VALUES >nombre
WITH-ALL-VALUES nombre[,...,nombre]
Exiger que toutes les valeurs de l’attribut d’EXPECT correspondent au(x) nombre(s) ou à la comparaison numérique. Lors de la comparaison des valeurs d’intervalle de nombres entiers, les opérateurs « < » et « > » contrôlent seulement la limite supérieure de l’intervalle.
WITH-ALL-VALUES "false"
WITH-ALL-VALUES "true"
Exiger que toutes les valeurs de l’attribut d’EXPECT correspondent à la valeur booléenne donnée
WITH-ALL-VALUES "/expr_rationnelle/"
Exiger que les valeurs de l’attribut d’EXPECT correspondent à l’expression rationnelle, qui doit être conforme à la syntaxe POSIX des expressions rationnelles. Les comparaisons sont sensibles à la casse.
WITH-HOSTNAME "chaîne_littérale"
WITH-HOSTNAME "/exp_rationnelle/"
Exiger qu’au moins une valeur d’URI contienne un nom d’hôte concordant.
WITH-RESOURCE "chaîne_littérale"
WITH-RESOURCE "/exp_rationnelle/"
Exiger qu’au moins une valeur d’URI contienne une ressource correspondante.(y compris le « / » de début).
WITH-SCHEME "chaîne_littérale"
WITH-SCHEME "/exp_rationnelle/"
Exiger qu’au moins une valeur d’URI contienne un schéma concordant.
WITH-VALUE "chaîne_littérale"
Exiger qu’au moins une valeur de l’attribut d’EXPECT corresponde à la chaîne littérale. Les comparaisons sont sensibles à la casse.
WITH-VALUE <nombre
WITH-VALUE =nombre
WITH-VALUE >nombre
WITH-VALUE nombre[,...,nombre]
Exiger qu’au moins une valeur de l’attribut d’EXPECT corresponde au(x) nombre(s) ou à la comparaison numérique. Lors de la comparaison des valeurs d’intervalle de nombres entiers, les opérateurs « < » et « > » contrôlent seulement la limite supérieure de l’intervalle.
WITH-VALUE "false"
WITH-VALUE "true"
Exiger qu’au moins une valeur de l’attribut d’EXPECT corresponde à la valeur booléenne donnée
WITH-VALUE "/exp_rationnelle/"
Exiger qu’au moins une valeur de l’attribut d’EXPECT corresponde à l’expression rationnelle, qui doit être conforme à la syntaxe POSIX des expressions rationnelles. Les comparaisons sont sensibles à la casse.
WITH-VALUE-FROM attribute-name
Requires that the value(s) of the EXPECT attribute matches the value(s) in the specified attribute. For example, "EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported" requires that the "job-sheets" value is listed as a value of the "job-sheets-supported" attribute.

PRÉDICATS STATUS

Les prédicats ci-dessous sont compris suivant la directive de test STATUS :
DEFINE-MATCH nom_variable
Définir la variable à 1 quand le STATUS correspond. Un effet de bord de ce prédicat est que ce STATUS n’échouera jamais à un test.
DEFINE-NO-MATCH nom_variable
Définir la variable à 1 quand le STATUS ne correspond pas. Un effet de bord de ce prédicat est que ce STATUS n’échouera jamais à un test.
IF-DEFINED nom_variable
Appliquer le STATUS seulement si la variable indiquée est définie.
IF-NOT-DEFINED nom_variable
Appliquer le STATUS seulement si la variable indiquée n’est pas définie.
REPEAT-LIMIT nombre

Définir le nombre maximal de répétitions. La valeur par défaut est 1000.
REPEAT-MATCH
REPEAT-NO-MATCH
Indiquer si le test actuel doit être recommencé si le code de l’état de la réponse correspond ou ne correspond pas à la valeur indiquée par la directive STATUS

CODES D’OPÉRATION

Les codes d’opération correspondent aux nombres hexadécimaux (0xHHHH) et noms de la RFC 2911 et d’autres spécifications d’extensions IPP. Voici une liste complète de noms pris en charge par ipptool(8) :
    Activate-Printer
    CUPS-Accept-Jobs
    CUPS-Add-Modify-Class
    CUPS-Add-Modify-Printer
    CUPS-Authenticate-Job
    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
    Cancel-Current-Job
    Cancel-Job
    Cancel-Jobs
    Cancel-My-Jobs
    Cancel-Subscription
    Close-Job
    Create-Job
    Create-Job-Subscriptions
    Create-Printer-Subscriptions
    Deactivate-Printer
    Disable-Printer
    Enable-Printer
    Get-Job-Attributes
    Get-Jobs
    Get-Notifications
    Get-Printer-Attributes
    Get-Printer-Support-Files
    Get-Printer-Supported-Values
    Get-Subscription-Attributes
    Get-Subscriptions
    Hold-Job
    Hold-New-Jobs
    Identify-Printer
    Pause-Printer
    Pause-Printer-After-Current-Job
    Print-Job
    Print-URI
    Promote-Job
    Purge-Jobs
    Release-Held-New-Jobs
    Release-Job
    Renew-Subscription
    Reprocess-Job
    Restart-Job
    Restart-Printer
    Resubmit-Job
    Resume-Job
    Resume-Printer
    Schedule-Job-After
    Send-Document
    Send-Hardcopy-Document
    Send-Notifications
    Send-URI
    Set-Job-Attributes
    Set-Printer-Attributes
    Shutdown-Printer
    Startup-Printer
    Suspend-Current-Job
    Validate-Document
    Validate-Job
    Activate-Printer
    CUPS-Accept-Jobs
    CUPS-Add-Modify-Class
    CUPS-Add-Modify-Printer
    CUPS-Authenticate-Job
    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
    Cancel-Current-Job
    Cancel-Job
    Cancel-Jobs
    Cancel-My-Jobs
    Cancel-Subscription
    Close-Job
    Create-Job
    Create-Job-Subscription
    Create-Printer-Subscription
    Deactivate-Printer
    Disable-Printer
    Enable-Printer
    Get-Job-Attributes
    Get-Jobs
    Get-Notifications
    Get-Printer-Attributes
    Get-Printer-Support-Files
    Get-Printer-Supported-Values
    Get-Subscription-Attributes
    Get-Subscriptions
    Hold-Job
    Hold-New-Jobs
    Identify-Printer
    Pause-Printer
    Pause-Printer-After-Current-Job
    Print-Job
    Print-URI
    Promote-Job
    Purge-Jobs
    Release-Held-New-Jobs
    Release-Job
    Renew-Subscription
    Reprocess-Job
    Restart-Job
    Restart-Printer
    Resubmit-Job
    Resume-Job
    Resume-Printer
    Schedule-Job-After
    Send-Document
    Send-Hardcopy-Document
    Send-Notifications
    Send-URI
    Set-Job-Attributes
    Set-Printer-Attributes
    Shutdown-Printer
    Startup-Printer
    Suspend-Current-Job
    Validate-Document
    Validate-Job

CODES D’ÉTAT

Les codes d’état correspondent aux nombres hexadécimaux (0xHHHH) et noms de la RFC 2911 et d’autres spécifications d’extensions IPP. Voici une liste complète de noms pris en charge par 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-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

ÉTIQUETTES

Les étiquettes de valeur et de groupe correspondent aux noms de la RFC 2911 et d’autres spécifications d’extensions IPP. Voici les étiquettes de groupe :
    document-attributes-tag
    event-notification-attributes-tag
    job-attributes-tag
    operation-attributes-tag
    printer-attributes-tag
    subscription-attributes-tag
    unsupported-attributes-tag

Voici les étiquettes de valeur :

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

VARIABLES

Le programme ipptool(8) conserve une liste de variables qui peuvent être utilisées dans n’importe quelle chaîne littérale ou valeur d’attribut en indiquant « $nom_variable ». En plus des variables définies en utilisant l’option « -d » ou la directive DEFINE, les variables prédéfinies suivantes sont disponibles :
$$
Insérer un seul caractère « $ ».
$ENV[nom]
Insérer la valeur de la variable d’environnement nommée, ou une chaîne vide si la variable d’environnement n’est pas définie.
$nom_fichier
Insérer le nom de fichier fourni à ipptool(8) avec l’option -f.
$type_fichier
Insérer le type MIME de média pour le nom de fichier fourni à ipptool(8) avec l’option « -f ».
$nom_hôte
Insérer le nom d’hôte à partir de l’URI fourni à ipptool(8).
$id_travail
Insérer la valeur du dernier identifiant de tâche renvoyée par la réponse d’un test ou 0 si aucun identifiant n’a été trouvé.
$uri_travail
Insérer la dernière valeur de l’attribut de l’URI de travail renvoyée par la réponse d’un test ou une chaîne vide si aucun attribut d’URI n’a été trouvé.
$id_notification_souscription
Insérer la dernière valeur de l’attribut d’identifiant de notification de souscription renvoyée dans une réponse de test ou 0 si aucun attribut n’a été trouvé.
$port
Insérer le numéro du port à partir de l’URI fourni à ipptool(8).
$ressource
Insérer le chemin de ressource à partir de l’URI fourni à ipptool(8).
$schéma
Insérer le schéma depuis l’URI fourni à ipptool(8).
$uri
Insérer l’URI fourni à ipptool(8).
$uri_utilisateur
Insérer l'identifiant à partir de l’URI fourni par ipptool(8), s’il existe.
$utilisateur
Insérer le nom de connexion de l’utilisateur actuel.

COPYRIGHT

Copyright 2007-2015 par Apple Inc.