ipptoolfile(5)

๐Ÿ“ฆ
version 2.4.19 ยท 5 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, centos-stream 10, debian trixie, fedora 43, fedora 44, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

๐Ÿ’– NAME ๐Ÿ’–

okay bestie, this is ipptoolfile(5) from OpenPrinting โ€” it's literally the ipptool file format. No cap. ๐ŸŽ€


โœจ DESCRIPTION โœจ

So ipptool(1) โ€” yes, the program โ€” accepts free-form plain text files that describe one or more IPP requests. ๐Ÿ’… Comments start with the # character and keep going to the end of the line. Periodt. Each request is enclosed by curly braces, like this:

# 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
}

๐Ÿ‘‘ TOP-LEVEL DIRECTIVES ๐Ÿ‘‘

The following directives can be used outside of a test:

  • { test } โ€” Defines a test. ๐Ÿฆ‹
  • DEFINE variable-name value โ€” Defines the named variable to the given value. This is equivalent to specifying -d variable-name=value on the ipptool(8) command-line. ๐Ÿ’–
  • DEFINE-DEFAULT variable-name value โ€” Defines the named variable to the given value if it does not already have a value. โœจ
  • FILE-ID "identifier" โ€” Specifies an identifier string for the current file. ๐ŸŽ€
  • IGNORE-ERRORS yes / IGNORE-ERRORS no โ€” Specifies whether, by default, ipptool(8) will ignore errors and continue with subsequent tests. ๐Ÿ‘€
  • INCLUDE "filename" / INCLUDE <filename> โ€” Includes another test file. The first form includes a file relative to the current test file, while the second form includes a file from the ipptool(8) include directory. ๐Ÿ“‚
  • INCLUDE-IF-DEFINED name "filename" / INCLUDE-IF-DEFINED name <filename> โ€” Includes another test file if the named variable is defined. The first form includes a file relative to the current test file, while the second form includes a file from the ipptool(8) include directory. ๐Ÿ’…
  • INCLUDE-IF-NOT-DEFINED name "filename" / INCLUDE-IF-NOT-DEFINED name <filename> โ€” Includes another test file if the named variable is not defined. The first form includes a file relative to the current test file, while the second form includes a file from the ipptool(8) include directory. ๐Ÿฆ‹
  • SKIP-IF-DEFINED variable-name / SKIP-IF-NOT-DEFINED variable-name โ€” Specifies that the remainder of the test file should be skipped when the variable is or is not defined. โญ๏ธ
  • STOP-AFTER-INCLUDE-ERROR no / STOP-AFTER-INCLUDE-ERROR yes โ€” Specifies whether tests will be stopped after an error in an included file. ๐Ÿ›‘
  • TRANSFER auto โ€” Specifies that tests will, by default, use "Transfer-Encoding: chunked" for requests with attached files and "Content-Length:" for requests without attached files. ๐Ÿ”„
  • TRANSFER chunked โ€” Specifies that tests will, by default, use the HTTP/1.1 "Transfer-Encoding: chunked" header. This is the default and is equivalent to specifying -c on the ipptool(8) command-line. Support for chunked requests is required for conformance with all versions of IPP. ๐Ÿ’ฏ
  • TRANSFER length โ€” Specifies that tests will, by default, use the HTTP/1.0 "Content-Length:" header. This is equivalent to specifying -l on the ipptool(8) command-line. Support for content length requests is required for conformance with all versions of IPP. ๐Ÿ“
  • VERSION 1.0
  • VERSION 1.1
  • VERSION 2.0
  • VERSION 2.1
  • VERSION 2.2

All of these specify the default IPP version number to use for the tests that follow. ๐ŸŒˆ


๐Ÿ”ฅ TEST DIRECTIVES ๐Ÿ”ฅ

The following directives are understood within a test:

  • ATTR out-of-band-tag attribute-name / ATTR tag attribute-name value(s) โ€” Adds an attribute to the test request. Out-of-band tags (admin-define, delete-attribute, no-value, not-settable, unknown, unsupported) have no value. Values for other tags are delimited by the comma (,) character - escape commas using the \ character. Common attributes and values are listed in the IANA IPP registry - see references below. ๐Ÿ“š
  • ATTR collection attribute-name { MEMBER tag member-name value(s) ... } [ ... ,{ ... } ] โ€” Adds a collection attribute to the test request. Member attributes follow the same syntax as regular attributes and can themselves be nested collections. Multiple collection values can be supplied as needed, separated by commas. ๐Ÿงบ
  • COMPRESSION deflate / COMPRESSION gzip / COMPRESSION none โ€” Uses the specified compression on the document data following the attributes in a Print-Job or Send-Document request. ๐Ÿ—œ๏ธ
  • DELAY seconds[,repeat-seconds] โ€” 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. โณ
  • DISPLAY attribute-name โ€” Specifies that value of the named attribute should be output as part of the test report. ๐Ÿ“บ
  • EXPECT attribute-name [ predicate(s) ] / EXPECT ?attribute-name predicate(s) / EXPECT !attribute-name โ€” Specifies that the response must/may/must not include the named attribute. Additional requirements can be added as predicates - see the "EXPECT PREDICATES" section for more information on predicates. Attribute names can specify member attributes by separating the attribute and member names with the forward slash, for example "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 filename โ€” Specifies a file to include at the end of the request. This is typically used when sending a test print file. ๐Ÿ“Ž
  • GROUP tag โ€” Specifies the group tag for subsequent attributes in the request. ๐Ÿท๏ธ
  • IGNORE-ERRORS yes / IGNORE-ERRORS no โ€” Specifies whether ipptool(8) will ignore errors and continue with subsequent tests. ๐Ÿ™ˆ
  • MONITOR-PRINTER-STATE [ printer-uri ] { EXPECT attribute-name [ predicate(s) ] } โ€” Specifies printer state monitoring tests to run in parallel with the test operation. The monitoring tests will run until all of the EXPECT conditions are satisfied or the primary test operation has completed, whichever occurs first. ๐Ÿ‘€
  • NAME "literal string" โ€” Specifies the human-readable name of the test. ๐Ÿท๏ธ
  • OPERATION operation-code โ€” Specifies the operation to be performed. โš™๏ธ
  • PASS-IF-DEFINED variable-name / PASS-IF-NOT-DEFINED variable-name โ€” Specifies that the current test should be passed automatically when the variable is or is not defined. โœ…
  • PAUSE "message" โ€” Displays the provided message and waits for the user to press a key to continue. โธ๏ธ
  • REQUEST-ID number / REQUEST-ID random โ€” Specifies the request-id value to use in the request, either an integer or the word "random" to use a randomly generated value (the default). ๐ŸŽฒ
  • RESOURCE path โ€” Specifies an alternate resource path that is used for the HTTP POST request. The default is the resource from the URI provided to the ipptool(8) program. ๐ŸŒ
  • SKIP-IF-DEFINED variable-name / SKIP-IF-NOT-DEFINED variable-name โ€” Specifies that the current test should be skipped when the variable is or is not defined. โญ๏ธ
  • SKIP-PREVIOUS-ERROR yes / SKIP-PREVIOUS-ERROR no โ€” Specifies whether ipptool(8) will skip the current test if the previous test resulted in an error/failure. ๐Ÿ’€
  • STATUS status-code [ predicate ] โ€” Specifies an expected response status-code value. Additional requirements can be added as predicates - see the "STATUS PREDICATES" section for more information on predicates. ๐Ÿ“Š
  • TEST-ID "identifier" โ€” Specifies an identifier string for the current test. ๐Ÿ†”
  • TRANSFER auto โ€” Specifies that this test will use "Transfer-Encoding: chunked" if it has an attached file or "Content-Length:" otherwise. ๐Ÿ”„
  • TRANSFER chunked โ€” Specifies that this test will use the HTTP/1.1 "Transfer-Encoding: chunked" header. ๐Ÿ’ฏ
  • TRANSFER length โ€” Specifies that this test will use the HTTP/1.0 "Content-Length:" header. ๐Ÿ“
  • VERSION 1.0
  • VERSION 1.1
  • VERSION 2.0
  • VERSION 2.1
  • VERSION 2.2

All of these specify the IPP version number to use for this test. ๐ŸŒˆ


๐ŸŒธ EXPECT PREDICATES ๐ŸŒธ

The following predicates are understood following the EXPECT test directive:

  • COUNT number โ€” Requires the EXPECT attribute to have the specified number of values. ๐Ÿ”ข
  • DEFINE-MATCH variable-name โ€” Defines the variable to "1" when the EXPECT condition matches. A side-effect of this predicate is that this EXPECT will never fail a test. ๐Ÿ’–
  • DEFINE-NO-MATCH variable-name โ€” defines the variable to "1" when the EXPECT condition does not match. Side quest alert: a side-effect of this predicate is that this EXPECT will never fail a test. ๐Ÿ’…
  • DEFINE-VALUE variable-name โ€” defines the variable to the value of the attribute when the EXPECT condition matches. And yeah, same side-effect energy: this EXPECT will never fail a test. ๐Ÿซถ
  • DISPLAY-MATCH "message" โ€” displays the message you typed when the EXPECT condition matches. It's giving "say it out loud bestie". โœจ
  • IF-DEFINED variable-name โ€” makes the EXPECT conditions apply only if that variable is defined.
  • IF-NOT-DEFINED variable-name โ€” makes the EXPECT conditions apply only if that variable is not defined.
  • IN-GROUP tag โ€” requires the EXPECT attribute to be in the specified group tag. gatekeeping, but make it valid ๐Ÿ’…
  • OF-TYPE tag[(limits)|tag|...] โ€” requires the EXPECT attribute to use one of the value tag(s) you listed. Most value tags also support limits in parentheses, like "name(42)" which allows nameWith/WithoutLanguage strings up to 42 octets in length, "name(4:MAX)" which allows nameWith/WithoutLanguage strings between 4 and 255 octets in length, and "integer(-273:MAX)" which allows integers between -273 and 2147483647. ๐Ÿ”ฅ
  • REPEAT-LIMIT number โ€” the maximum number of times to repeat when the REPEAT-MATCH or REPEAT-NO-MATCH predicate is specified. Default value is 1000, no cap on the drama tho.
  • REPEAT-MATCH or REPEAT-NO-MATCH โ€” specifies that the current test should be repeated when the EXPECT condition matches or does not match. it's giving encore ๐ŸŽค
  • SAME-COUNT-AS attribute-name โ€” requires the EXPECT attribute to have the same number of values as the specified parallel attribute. matching counts, matching vibes โœจ
  • WITH-ALL-HOSTNAMES "literal string" or WITH-ALL-HOSTNAMES "/regular expression/" โ€” requires that all URI values contain a matching hostname.
  • WITH-ALL-RESOURCES "literal string" or WITH-ALL-RESOURCES "/regular expression/" โ€” requires that all URI values contain a matching resource (including the leading /).
  • WITH-ALL-SCHEMES "literal string" or WITH-ALL-SCHEMES "/regular expression/" โ€” requires that all URI values contain a matching scheme.
  • WITH-ALL-VALUES "literal string" โ€” requires that all values of the EXPECT attribute match the literal string. Comparisons are case-sensitive. ๐Ÿ‘€
  • WITH-ALL-VALUES <number, =number, >number, or number[,...,number] โ€” requires that all values of the EXPECT attribute match the number(s) or numeric comparison. When comparing rangeOfInteger values, the "<" and ">" operators only check the upper bound of the range. fr fr, upper bound only.
  • WITH-ALL-VALUES "false" or WITH-ALL-VALUES "true" โ€” requires that all values of the EXPECT attribute match the boolean value given.
  • WITH-ALL-VALUES "/regular expression/" โ€” requires that all values of the EXPECT attribute match the regular expression, which must conform to the POSIX regular expression syntax. Comparisons are case-sensitive.
  • WITH-DISTINCT-VALUES โ€” requires that all values of the EXPECT attribute are unique. Comparisons are case-sensitive. Only charset, collection, enum, integer, keyword, mimeMediaType, naturalLanguage, rangeOfInteger, resolution, uriScheme attributes support this predicate. everyone else, sit this one out ๐Ÿช‘
  • WITH-HOSTNAME "literal string" or WITH-HOSTNAME "/regular expression/" โ€” requires that at least one URI value contains a matching hostname.
  • WITH-RESOURCE "literal string" or WITH-RESOURCE "/regular expression/" โ€” requires that at least one URI value contains a matching resource (including the leading /).
  • WITH-SCHEME "literal string" or WITH-SCHEME "/regular expression/" โ€” requires that at least one URI value contains a matching scheme.
  • WITH-VALUE "literal string" โ€” requires that at least one value of the EXPECT attribute matches the literal string. Comparisons are case-sensitive.
  • WITH-VALUE <number, =number, >number, or number[,...,number] โ€” requires that at least one value of the EXPECT attribute matches the number(s) or numeric comparison. When comparing rangeOfInteger values, the "<" and ">" operators only check the upper bound of the range.
  • WITH-VALUE "false" or WITH-VALUE "true" โ€” requires that at least one value of the EXPECT attribute matches the boolean value given.
  • WITH-VALUE "/regular expression/" โ€” requires that at least one value of the EXPECT attribute matches the regular expression, which must conform to the POSIX regular expression syntax. Comparisons are case-sensitive.
  • WITH-VALUE-FROM attribute-name โ€” requires that the value(s) of the EXPECT attribute match the value(s) in the specified attribute. Example time, bestie: 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. so valid, so slay ๐Ÿ’–

๐Ÿ’… STATUS PREDICATES ๐Ÿ’…

The following predicates are understood following the STATUS test directive:

  • DEFINE-MATCH variable-name โ€” defines the variable to "1" when the STATUS matches. A side-effect of this predicate is that this STATUS will never fail a test. ๐Ÿ˜Œ
  • DEFINE-NO-MATCH variable-name โ€” defines the variable to "1" when the STATUS does not match. A side-effect of this predicate is that this STATUS will never fail a test. periodt.
  • IF-DEFINED variable-name โ€” makes the STATUS apply only if the specified variable is defined.
  • IF-NOT-DEFINED variable-name โ€” makes the STATUS apply only if the specified variable is not defined.
  • REPEAT-LIMIT number โ€” specifies the maximum number of times to repeat. The default value is 1000.
  • REPEAT-MATCH or REPEAT-NO-MATCH โ€” specifies that the current test should be repeated when the response status-code matches or does not match the value specified by the STATUS directive. round two, and a round three, and a round fourโ€ฆ ๐ŸŒ€

๐Ÿ”ฅ OPERATION CODES ๐Ÿ”ฅ

Operation codes correspond to the hexadecimal numbers (0xHHHH) and names from RFC 8011 and other IPP extension specifications. Here is a complete list of names supported by 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
yes bestie, CUPS-Accept-Jobs is in there twice. that's not a typo on my end, that's literally what the page says. we keep it. ๐Ÿ’…

โœจ STATUS CODES โœจ

Status codes correspond to the hexadecimal numbers (0xHHHH) and names from RFC 8011 and other IPP extension specifications. Here is a complete list of the names supported by ipptool(8):

  • client-error-account-authorization-failed โ€” auth said no ๐Ÿšซ
  • client-error-account-closed โ€” that account? gone, bestie
  • client-error-account-info-needed โ€” they need more info from you
  • client-error-account-limit-reached โ€” you hit the ceiling
  • client-error-attributes-not-settable โ€” nope, those can't be set
  • client-error-attributes-or-values-not-supported โ€” not a thing here
  • client-error-bad-request โ€” the request itself was a mess ๐Ÿ˜ญ
  • client-error-charset-not-supported โ€” charset? not supported
  • client-error-compression-error โ€” compression went sideways
  • client-error-compression-not-supported โ€” no compression here
  • client-error-conflicting-attributes โ€” these two are fighting
  • client-error-document-access-error โ€” couldn't get at the document
  • client-error-document-format-error โ€” document format is broken
  • client-error-document-format-not-supported โ€” that format? not supported
  • client-error-document-password-error โ€” password issue on the document
  • client-error-document-permission-error โ€” permission issue on the document
  • client-error-document-security-error โ€” security issue on the document
  • client-error-document-unprintable-error โ€” this doc can't be printed
  • client-error-forbidden โ€” forbidden, periodt
  • client-error-gone โ€” it's gone ๐Ÿ’€
  • client-error-ignored-all-notifications โ€” ignored every single notification
  • client-error-ignored-all-subscriptions โ€” ignored every single subscription
  • client-error-not-authenticated โ€” you're not authenticated
  • client-error-not-authorized โ€” you're not authorized
  • client-error-not-fetchable โ€” can't be fetched
  • client-error-not-found โ€” 404 energy, it's not there
  • client-error-not-possible โ€” just... not possible rn
  • client-error-print-support-file-not-found โ€” that print support file isn't there
  • client-error-request-entity-too-large โ€” the request entity is too big
  • client-error-request-value-too-long โ€” the request value is too long
  • client-error-timeout โ€” timed out ๐Ÿ™ˆ
  • client-error-too-many-subscriptions โ€” too many subscriptions, babe
  • client-error-uri-scheme-not-supported โ€” that URI scheme? not supported
  • cups-error-account-authorization-failed โ€” CUPS flavor: auth said no
  • cups-error-account-closed โ€” CUPS flavor: account closed
  • cups-error-account-info-needed โ€” CUPS flavor: more info needed
  • cups-error-account-limit-reached โ€” CUPS flavor: limit hit
  • cups-see-other โ€” CUPS says go look somewhere else ๐Ÿ‘€
  • redirection-other-site โ€” redirected to another site
  • server-error-busy โ€” the server is busy busy ๐Ÿ˜ญ
  • server-error-device-error โ€” device error on the server side
  • server-error-internal-error โ€” internal server error, classic
  • server-error-job-canceled โ€” the job got canceled
  • server-error-multiple-document-jobs-not-supported โ€” no multi-document jobs here
  • server-error-not-accepting-jobs โ€” not taking jobs rn
  • server-error-operation-not-supported โ€” that operation? not supported
  • server-error-printer-is-deactivated โ€” the printer is deactivated
  • server-error-service-unavailable โ€” service unavailable, come back later
  • server-error-temporary-error โ€” temporary error, it's giving "try again"
  • server-error-version-not-supported โ€” that version? not supported
  • successful-ok โ€” we did it!! โœจ
  • successful-ok-but-cancel-subscription โ€” ok but cancel the subscription
  • successful-ok-conflicting-attributes โ€” ok, but those attributes are beefing
  • successful-ok-events-complete โ€” ok, events are complete
  • successful-ok-ignored-notifications โ€” ok, notifications got ignored
  • successful-ok-ignored-or-substituted-attributes โ€” ok, attributes got ignored or swapped
  • successful-ok-ignored-subscriptions โ€” ok, subscriptions got ignored
  • successful-ok-too-many-events โ€” ok, but wayyy too many events

โœจ TAGS โœจ

Value and group tags correspond to the names from RFC 8011 and other IPP extension specifications. Here are the group tags:

  • 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

And here are the value tags, bestie:

  • 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

๐Ÿ”ฎ VARIABLES ๐Ÿ”ฎ

The ipptool(8) program maintains a list of variables that can be used in any literal string or attribute value by specifying "$variable-name". Aside from variables defined using the -d option or DEFINE directive, the following pre-defined variables are available:

  • $$ โ€” drops in a single "$" character.
  • $ENV[name] โ€” drops in the value of the named environment variable, or an empty string if that environment variable isn't defined.
  • $date-current โ€” drops in the current date and time using the ISO-8601 format ("yyyy-mm-ddThh:mm:ssZ").
  • $date-start โ€” drops in the starting date and time using the ISO-8601 format ("yyyy-mm-ddThh:mm:ssZ").
  • $filename โ€” drops in the filename you handed to ipptool(8) with the -f option.
  • $filetype โ€” drops in the MIME media type for the filename you handed to ipptool(8) with the -f option.
  • $hostname โ€” drops in the hostname from the URI you handed to ipptool(8).
  • $job-id โ€” drops in the last "job-id" attribute value returned in a test response, or 0 if no "job-id" attribute has been seen.
  • $job-uri โ€” drops in the last "job-uri" attribute value returned in a test response, or an empty string if no "job-uri" attribute has been seen.
  • $notify-subscription-id โ€” drops in the last "notify-subscription-id" attribute value returned in a test response, or 0 if no "notify-subscription-id" attribute has been seen.
  • $port โ€” drops in the port number from the URI you handed to ipptool(8).
  • $resource โ€” drops in the resource path from the URI you handed to ipptool(8).
  • $scheme โ€” drops in the scheme from the URI you handed to ipptool(8).
  • $uri โ€” drops in the URI you handed to ipptool(8).
  • $uriuser โ€” drops in the username from the URI you handed to ipptool(8), if there is one.
  • $user โ€” drops in the current user's login name.

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€


Copyright ยฉ 2020-2024 by OpenPrinting.


And that's a wrap on the whole page, bestie ๐Ÿซถ this part was stamped 2021-09-20, it belongs to CUPS, and it lives in section ipptoolfile(5) โ€” go forth and test those IPP requests, you absolute icon ๐Ÿ‘‘

๐Ÿ“ฆ where this page comes from