DOKK / manpages / debian 12 / cups-ipp-utils / ipptoolfile.5.de
ipptoolfile(5) OpenPrinting ipptoolfile(5)

ipptoolfile - ipptool-Dateiformat

Das Programm ipptool(1) akzeptiert frei formatierte einfache Textdateien, die eine oder mehrere IPP-Anfragen beschreiben. Kommentare beginnen mit dem Zeichen »#« und gehen bis zum Zeilenende. Jede Anfrage ist in geschweiften Klammern eingeschlossen. Beispiel:


# Dies ist ein Kommentar
{
# Der Name des Tests
NAME "Drucke PDF-Datei"
# Die zu sendende Anfrage
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, einfaches Papier aus dem »Haupt«-Fach
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 Testdatei.pdf
# Die zu erwartende Antwort
STATUS successful-ok
EXPECT job-id OF-TYPE integer WITH-VALUE >0
EXPECT job-uri OF-TYPE uri
}
{
# Der Name des Tests
NAME "Warte auf Fertigstellung des Auftrags"
# Die zu sendende Anfrage
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
# Die zu erwartende Antwort
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"
# Den Auftragsstatus zeigen, bis fertig…
DISPLAY job-state
DISPLAY job-state-reasons
}

Die folgenden Direktiven können außerhalb eines Tests verwandt werden:

{ Test }
Definiert einen Test.
Definiert die benannte Variable auf den angegebenen Wert. Dies ist zur Angabe von -d Variablennamen=Wert auf der ipptool(8)-Befehlszeile äquivalent.
Definiert die benannte Variable auf den angegebenen Wert, falls sie nicht bereits einen Wert hat.
Legt einen Bezeichner als Zeichenkette für die aktuelle Datei fest.
Legt fest, ob ipptool(8) standardmäßig Fehler ignorieren und mit folgenden Tests fortfahren wird.
Bindet eine andere Testdatei ein. Die erste Form bindet eine Datei relativ zu der aktuellen Testdatei ein, während die zweite Form eine Datei aus dem ipptool(8)-Einbindeverzeichnis einbindet.
Bindet eine andere Testdatei ein, falls die benannte Variable definiert ist. Die erste Form bindet eine Datei relativ zu der aktuellen Testdatei ein, während die zweite Form eine Datei aus dem ipptool(8)-Einbindeverzeichnis einbindet.
Bindet eine andere Testdatei ein, falls die benannte Variable nicht definiert ist. Die erste Form bindet eine Datei relativ zu der aktuellen Testdatei ein, während die zweite Form eine Datei aus dem ipptool(8)-Einbindeverzeichnis einbindet.
Legt fest, dass der Rest der Testdatei übersprungen werden soll, wenn die Variable (nicht) definiert ist.
Legt fest, ob Tests nach einem Fehler in einer eingebundenen Datei angehalten werden oder nicht.
Legt fest, dass der Test standardmäßig »Transfer-Encoding: chunked« für Anfragen mit angehängten Dateien und »Content-Length:« für Anfragen ohne angehängte Dateien verwenden wird.
Legt fest, dass die Tests standardmäßig die HTTP/1.1-Kopfzeile »Transfer-Encoding: chunked« verwenden. Dies ist die Vorgabe und äquivalent zur Angabe von -c auf der Befehlszeile von ipptool(8). Die Unterstützung für blockweise Abfragen wird für die Konformität mit allen Versionen von IPP benötigt.
Legt fest, dass die Tests standardmäßig die HTTP/1.0-Kopfzeile »Content-Length« verwenden. Dies ist die Vorgabe und äquivalent zur Angabe von -l auf der Befehlszeile von ipptool(8). Die Unterstützung für Inhaltslängen-Abfragen wird für die Konformität mit allen Versionen von IPP benötigt.
Legt die Standard-IPP-Versionsnummer, die für die nachfolgenden Tests verwandt werden soll, fest.

Die nachfolgenden Direktiven werden innerhalb eines Test verstanden:

Fügt ein Attribut zu der Testanfrage hinzu. Außerbandmarkierungen (admin-define, delete-attribute, no-value, not-settable, unknown, unsupported) haben keinen Wert. Werte für die anderen Markierungen werden durch Kommata (»,«) getrennt -- schützen Sie Kommata mittels des Anführungszeichens (»"«). Häufige Attribute und Werte sind in der »IANA IPP registry« aufgeführt, siehe Referenz unten.
Fügt der Testanfrage ein Sammlungsattribut hinzu. Mitgliedsattribute folgen der gleichen Syntax wie reguläre Attribute und können selbst wieder verschachtelte Sammlungen sein. Mehrere Sammlungswerte können, durch Kommata getrennt, wie benötigt angegeben werden.
Verwendet die angegebene Komprimierung auf die Dokumentendaten, die den Attributen in einer Print-Job- oder Send-Document-Anfrage folgen.
Legt eine Verzögerung in Sekunden fest, bevor dieser Test ausgeführt wird. Falls zwei Werte festgelegt werden, wird der zweite als Verzögerung zwischen wiederholten Tests verwandt.
Legt fest, dass der Wert des benannten Attributes als Teil des Testberichts ausgegeben werden soll.
Legt fest, dass die Antwort das benannte Attribut enthalten muss/kann/nicht darf. Zusätzliche Anforderungen können als Eigenschaften hinzugefügt werden - siehe den Abschnitt »EXPECT-EIGENSCHAFTEN« für weitere Informationen über Eigenschaften. Attributnamen können weitere Mitgliederattribute festlegen, indem die Attribut- und Mitgliedernamen durch einen normalen Schrägstrich getrennt werden. Beispiel: »media-col/media-size/x-dimension«.
Legt fest, dass die Antwort das benannte Attribut enthalten muss/kann und dass alle Vorkommen dieses Attributs auf die angegebenen Eigenschaften passen müssen.
Legt eine Datei, die am Ende der Anfrage eingefügt werden soll, fest. Dies wird typischerweise verwandt, wenn eine Testausdrucksdatei gesandt wird.
Legt die Gruppenmarkierung für nachfolgende Attribute in der Anfrage fest.
Legt fest, ob ipptool(8) Fehler in nachfolgenden Tests ignorieren und fortfahren soll.
Legt die Druckerzustandsüberwachungstests fest, die parallel zu den Testaktionen ausgeführt werden sollen. Die Überwachungstests werden ausgeführt, bis alle EXPECT-Bedingungen erfüllt sind oder die primäre Testaktion abgeschlossen wurde; es zählt das erste der Ereignisse.
NAME " Zeichenkette"
Legt den menschenlesbaren Namen des Tests fest.
Legt den auszuführenden Vorgang fest.
Legt fest, dass der aktuelle Test automatisch bestanden werden soll, wenn die Variable (nicht) definiert ist.
Zeigt die bereitgestellte Nachricht an und warten darauf, dass der Benutzer eine Taste zum Fortfahren drückt.
Legt die in der Anfrage zu verwendende Anfrage-ID, entweder eine Ganzzahl oder das Wort »random«, um einen zufällig erzeugten Wert zu verwenden (Vorgabe), fest.
Legt einen alternativen Ressourcen-Pfad, der für HTTP-POST-Anfragen verwandt wird, fest. Die Vorgabe ist die Ressource, die aus der an das Programm ipptool(8) übergebenen URI entstammt.
Legt fest, dass der aktuelle Test übersprungen werden soll, wenn die Variable (nicht) definiert ist.
Legt fest, ob ipptool(8) den aktuellen Test überspringt, falls der vorhergehende Test zu einem Fehler/Fehlschlag führte.
Legt den Status-Code-Wert einer erwarteten Antwort fest. Zusätzliche Anforderungen können als Eigenschaften hinzugefügt werden - siehe den Abschnitt »EXPECT-EIGENSCHAFTEN« für weitere Informationen über Eigenschaften.
Legt einen Bezeichner als Zeichenkette für den aktuellen Test fest.
Legt fest, dass dieser Test »Transfer-Encoding: chunked« verwendet, falls er eine angehängt Datei hat und »Content-Length:« andernfalls.
Legt fest, dass dieser Test die HTTP/1.1-Kopfzeile »Transfer-Encoding: chunked« verwenden wird.
Legt fest, dass dieser Test die HTTP/1.0-Kopfzeile »Content-Length:« verwenden wird.
Legt die für diesen Test zu verwendende IPP-Versionsnummer fest.

Die folgenden Eigenschaften (Prädikate) werden angehängt an die EXPECT-Test-Direktiven verstanden:

Verlangt, dass das Attribut von EXPECT die angegebene Anzahl an Werten hat.
Setzt die Variable auf »1«, wenn die EXPECT-Bedingung passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser EXPECT niemals bei einem Test fehlschlägt.
Setzt die Variable auf »1«, wenn die EXPECT-Bedingung nicht passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser EXPECT niemals bei einem Test fehlschlägt.
Setzt die Variable auf den Wert des Attributes, wenn die EXPECT-Bedingung passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser EXPECT niemals bei einem Test fehlschlägt.
Zeigt die festgelegte Nachricht, wenn die EXPECT-Bedingung passt.
Die EXPECT-Bedingung wird nur angewandt, falls die angegebene Variable definiert ist.
Die EXPECT-Bedingung wird nur angewandt, falls die angegebene Variable nicht definiert ist.
Verlangt, dass das EXPECT-Attribut in der angegebenen Gruppenmarkierung ist.
Verlangt, dass das EXPECT-Attribut eines der festgelegten Attribut(e) verwendet. Die meisten Wertemarkierungen unterstützen auch die Angabe von Beschränkungen in Klammern, beispielsweise würde »name(42)« nameWith/WithoutLanguage-Zeichenketten bis zu einer Länge von 42 Oktetten, »name(4:MAX)« würde nameWith/WithoutLanguage-Zeichenketten zwischen 4 und 255 Oktetten erlauben und »integer(-273:MAX)« würde Ganzzahlen zwischen -273 und 2147483647 erlauben.

Legt die maximale Anzahl an Wiederholungen, falls die Eigenschaft REPEAT-MATCH oder REPEAT-NO-MATCH festgelegt ist, fest. Die Vorgabe ist 1000.
Legt fest, dass der aktuelle Test wiederholt werden soll, wenn die EXPECT-Bedingung (nicht) passt.
Verlangt, dass das EXPECT-Attribut die gleiche Anzahl von Werten wie das festgelegte parallele Attribut hat.
Verlangt, dass alle URI-Werte einen passenden Rechnernamen enthalten.
Verlangt, dass alle URI-Werte eine passende Ressource (einschließlich des führenden /) enthalten.
Verlangt, dass alle URI-Werte ein passendes Schema enthalten.
Verlangt, dass alle Werte des EXPECT-Attributs auf die Zeichenkette passen. Vergleiche berücksichtigen die Groß- und Kleinschreibung.
Verlangt, dass alle Werte des EXPECT-Attributs auf die Zahl(en) passen oder den numerischen Vergleich erfüllen. Beim Vergleich von rangeOfInteger-Werten prüfen die Operatoren »<« und »>« nur die obere Grenze der Bereiche.
Verlangt, dass alle Werte des EXPECT-Attributs auf den übergebenen logischen Wert passen.
Verlangt, dass alle Werte des EXPECT-Attributes auf den regulären Ausdruck passen. Dieser muss die Syntax regulärer POSIX-Ausdrücke erfüllen. Vergleiche berücksichtigen Groß- und Kleinschreibung.
Verlangt, dass alle Werte des EXPECT-Attributs eindeutig sind. Vergleiche berücksichtigen Groß-/Kleinschreibung. Nur die Attribute charset, collection, enum, integer, keyword, mimeMediaType, naturalLanguage, rangeOfInteger, resolution, uriScheme unterstützen diese Eigenschaft.
Verlangt, dass mindestens ein URI-Wert einen passenden Rechnernamen enthält.
Verlangt, dass mindestens ein URI-Wert eine passende Ressource (einschließlich des führenden /) enthält.
Verlangt, dass mindestens ein URI-Wert ein passendes Schema enthält.
Verlangt, dass mindestens ein Wert des EXPECT-Attributs auf die Zeichenkette passt. Vergleiche berücksichtigen Groß- und Kleinschreibung.
Verlangt, dass mindestens ein Wert des EXPECT-Attributs auf die Zahl(en) passt oder den numerischen Vergleich erfüllt. Beim Vergleich von rangeOfInteger-Werten prüfen die Operatoren »<« und »>« nur die obere Grenze der Bereiche.
Verlangt, dass mindestens ein Wert des EXPECT-Attributs auf den übergebenen logischen Wert passt.
Verlangt, dass mindestens ein Wert des EXPECT-Attributes auf den regulären Ausdruck passt. Dieser muss die Syntax regulärer POSIX-Ausdrücke erfüllen. Vergleiche berücksichtigen Groß- und Kleinschreibung.
Verlangt, dass der Wert/die Werte des Attributes EXPECT auf den Wert/die Werte in dem angegebenen Attribut passt/passen. Beispielsweise verlangt »EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported«, dass der Wert »job-sheets« als Wert im Attribut »job-sheets-supported« aufgeführt ist.

Die folgenden Eigenschaften werden nach der STATUS-Testdirektive verstanden:

Setzt die Variable auf »1« wenn der STATUS passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser STATUS niemals bei einem Test fehlschlägt.
Setzt die Variable auf »1« wenn der STATUS nicht passt. Ein Seiteneffekt dieser Eigenschaft ist, dass dieser STATUS niemals bei einem Test fehlschlägt.
Führt dazu, dass der STATUS nur angewandt wird, falls die angegebene Variable definiert ist.
Führt dazu, dass der STATUS nur angewandt wird, falls die angegebene Variable nicht definiert ist.

Legt die maximale Anzahl an Wiederholungen fest. Die Vorgabe ist 1000.
Legt fest, dass der aktuelle Test wiederholt werden soll, wenn der Rückgabestatuscode (nicht) auf den durch die STATUS-Direktive angegebenen Wert passt.

Vorgangscodes entsprechen hexadezimalen Zahlen (0xHHHH) und Namen aus RFC 8011 und anderen IPP-Erweiterungsspezifikationen. Hier ist die komplette Liste der von ipptool(8) unterstützten Namen:


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

Status-Codes entsprechend den hexadezimalen Zahlen (0xHHHH) und Namen aus RFC 8011 und anderen IPP-Erweiterungsspezifikationen. Hier ist die komplette Liste der von ipptool(8) unterstützten Namen:


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

Werte- und Gruppenmarkierungen entsprechen den Namen aus RFC 8011 und anderen IPP-Erweiterungsspezifikationen. Hier sind die Gruppenmarkierungen:


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

Hier sind die Wertemarkierungen:


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

Das Programm ipptool(8) verwaltet eine Liste von Variablen, die in jeder Zeichenkette oder jedem Attributswert über Angabe von »$variable-name« verwandt werden können. Neben den durch die Option -d oder der Direktiven DEFINE angegebenen Variablen sind folgende vordefinierte Variablen verfügbar:

$$
Fügt ein einzelnes »$«-Zeichen ein.
$ENV[Name]
Fügt den Wert der benannten Umgebungsvariablen oder eine leere Zeichenkette, falls die Umgebungsvariable nicht definiert ist, ein.
$date-current
Fügt das aktuelle Datum und die aktuelle Zeit im ISO-8601-Format (»yyyy-mm-ddThh:mm:ssZ«) ein.
$date-start
Fügt das Startdatum und die Startzeit im ISO-8601-Format (»yyyy-mm-ddThh:mm:ssZ«) ein.
$filename
Fügt den mit der Option -f an ipptool(8) bereitgestellten Dateinamen ein.
$filetype
Fügt den MIME-Medientyp für den mit der Option -f an ipptool(8) bereitgestellten Dateinamen ein.
$hostname
Fügt den Rechnernamen aus der ipptool(8) bereitgestellten URI ein.
$job-id
Fügt den letzten in einer Testantwort zurückgelieferten »job-id«-Attributwert oder 0, falls kein Attribut »job-id« gesehen wurde, ein.
$job-uri
Fügt den letzten in einer Testantwort zurückgelieferten »job-uri«-Attributwert oder eine leere Zeichenkette, falls kein Attribut »job-uri« gesehen wurde, ein.
$notify-subscription-id
Fügt den letzten in einer Testantwort zurückgelieferten »notify-subscription-id«-Attributwert oder 0, falls kein Attribut »notify-subscription-id« gesehen wurde, ein.
$port
Fügt die Portnummer aus der an ipptool(8) übergebenen URI ein.
$resource
Fügt den Ressourcenpfad aus der an ipptool(8) übergebenen URI ein.
$scheme
Fügt das Schema aus der ipptool(8) übergebenen URI ein.
$uri
Fügt die an ipptool(8) übergebene URI ein.
$uriuser
Fügt den Benutzernamen aus der ipptool(8) übergebenen URI ein, falls vorhanden.
$user
Fügt den Anmeldenamen des aktuellen Benutzers ein.

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-2022 by OpenPrinting.

CUPS 2021-09-20