]> git.ipfire.org Git - thirdparty/cups.git/blame_incremental - man/ippfind.1
Greatly simplify the man page handling.
[thirdparty/cups.git] / man / ippfind.1
... / ...
CommitLineData
1.\"
2.\" ippfind man page.
3.\"
4.\" Copyright © 2013-2019 by Apple Inc.
5.\"
6.\" Licensed under Apache License v2.0. See the file "LICENSE" for more
7.\" information.
8.\"
9.TH ippfind 1 "ippsample" "26 April 2019" "Apple Inc."
10.SH NAME
11ippfind \- find internet printing protocol printers
12.SH SYNOPSIS
13.B ippfind
14[
15.I options
16] \fIregtype\fR[\fB,\fIsubtype\fR][\fB.\fIdomain\fB.\fR] ... [
17.I expression
18 ... ]
19.br
20.B ippfind
21[
22.I options
23] \fIname\fR[\fB.\fIregtype\fR[\fB.\fIdomain\fB.\fR]] ... [
24.I expression
25 ... ]
26.br
27.B ippfind
28.B \-\-help
29.br
30.B ippfind
31.B \-\-version
32.SH DESCRIPTION
33\fBippfind\fR finds services registered with a DNS server or available through local devices.
34Its primary purpose is to find IPP printers and show their URIs, show their current status, or run commands.
35.SS REGISTRATION TYPES
36\fBippfind\fR supports the following registration types:
37.TP 5
38_http._tcp
39HyperText Transport Protocol (HTTP, RFC 2616)
40.TP 5
41_https._tcp
42Secure HyperText Transport Protocol (HTTPS, RFC 2818)
43.TP 5
44_ipp._tcp
45Internet Printing Protocol (IPP, RFC 2911)
46.TP 5
47_ipps._tcp
48Secure Internet Printing Protocol (IPPS, draft)
49.TP 5
50_printer._tcp
51Line Printer Daemon (LPD, RFC 1179)
52.SS EXPRESSIONS
53\fBippfind\fR supports expressions much like the
54.BR find (1)
55utility.
56However, unlike
57.BR find (1),
58\fBippfind\fR uses POSIX regular expressions instead of shell filename matching patterns.
59If \fI\-\-exec\fR, \fI\-l\fR, \fI\-\-ls\fR, \fI\-p\fR, \fI\-\-print\fR, \fI\-\-print\-name\fR, \fI\-q\fR, \fI\-\-quiet\fR, \fI\-s\fR, or \fI\-x\fR is not specified, \fBippfind\fR adds \fI\-\-print\fR to print the service URI of anything it finds.
60The following expressions are supported:
61.TP 5
62\fB\-d \fIregex\fR
63.TP 5
64\fB\-\-domain \fIregex\fR
65True if the domain matches the given regular expression.
66.TP 5
67.B \-\-false
68Always false.
69.TP 5
70\fB\-h \fIregex\fR
71.TP 5
72\fB\-\-host \fIregex\fR
73True is the hostname matches the given regular expression.
74.TP 5
75.B \-l
76.TP 5
77.B \-\-ls
78Lists attributes returned by Get-Printer-Attributes for IPP printers and traditional \fIfind\fR "-ls" output for HTTP URLs.
79The result is true if the URI is accessible, false otherwise.
80.TP 5
81.B \-\-local
82True if the service is local to this computer.
83.TP 5
84\fB\-N \fIname\fR
85.TP 5
86\fB\-\-literal\-name \fIname\fR
87True if the service instance name matches the given name.
88.TP 5
89\fB\-n \fIregex\fR
90.TP 5
91\fB\-\-name \fIregex\fR
92True if the service instance name matches the given regular expression.
93.TP 5
94\fB\-\-path \fIregex\fR
95True if the URI resource path matches the given regular expression.
96.TP 5
97\fB\-P \fInumber\fR[\fB-\fInumber\fR]
98.TP 5
99\fB\-\-port \fInumber\fR[\fB-\fInumber\fR]
100True if the port matches the given number or range.
101.TP 5
102.B \-p
103.TP 5
104.B \-\-print
105Prints the URI if the result of previous expressions is true.
106The result is always true.
107.TP 5
108.B \-q
109.TP 5
110.B \-\-quiet
111Quiet mode - just returns the exit codes below.
112.TP 5
113.B \-r
114.TP 5
115.B \-\-remote
116True if the service is not local to this computer.
117.TP 5
118.B \-s
119.TP 5
120.B \-\-print\-name
121Prints the service instance name if the result of previous expressions is true.
122The result is always true.
123.TP 5
124.B \-\-true
125Always true.
126.TP 5
127\fB\-t \fIkey\fR
128.TP 5
129\fB\-\-txt \fIkey\fR
130True if the TXT record contains the named key.
131.TP 5
132\fB\-\-txt\-\fIkey regex\fR
133True if the TXT record contains the named key and matches the given regular expression.
134.TP 5
135\fB\-u \fIregex\fR
136.TP 5
137\fB\-\-uri \fIregex\fR
138True if the URI matches the given regular expression.
139.TP 5
140\fB\-x \fIutility \fR[ \fIargument \fR... ] \fB;\fR
141.TP 5
142\fB\-\-exec \fIutility \fR[ \fIargument \fR... ] \fB;\fR
143Executes the specified program if the current result is true.
144"{foo}" arguments are replaced with the corresponding value - see SUBSTITUTIONS below.
145.PP
146Expressions may also contain modifiers:
147.TP 5
148\fB( \fIexpression \fB)\fR
149Group the result of expressions.
150.TP 5
151\fB! \fIexpression\fR
152.TP 5
153\fB\-\-not \fIexpression\fR
154Unary NOT of the expression.
155.TP 5
156\fIexpression expression\fR
157.TP 5
158\fIexpression \fB\-\-and \fIexpression\fR
159Logical AND of expressions.
160.TP 5
161\fIexpression \fB\-\-or \fIexpression\fR
162Logical OR of expressions.
163.SS SUBSTITUTIONS
164The substitutions for "{foo}" in \fI\-e\fR and \fI\-\-exec\fR are:
165.TP 5
166.B {service_domain}
167Domain name, e.g., "example.com.", "local.", etc.
168.TP 5
169.B {service_hostname}
170Fully-qualified domain name, e.g., "printer.example.com.", "printer.local.", etc.
171.TP 5
172.B {service_name}
173Service instance name, e.g., "My Fine Printer".
174.TP 5
175.B {service_port}
176Port number for server, typically 631 for IPP and 80 for HTTP.
177.TP 5
178.B {service_regtype}
179DNS-SD registration type, e.g., "_ipp._tcp", "_http._tcp", etc.
180.TP 5
181.B {service_scheme}
182URI scheme for DNS-SD registration type, e.g., "ipp", "http", etc.
183.TP 5
184.B {}
185.TP 5
186.B {service_uri}
187URI for service, e.g., "ipp://printer.local./ipp/print", "http://printer.local./", etc.
188.TP 5
189\fB{txt_\fIkey\fB}\fR
190Value of TXT record \fIkey\fR (lowercase).
191.SH OPTIONS
192\fBippfind\fR supports the following options:
193.TP 5
194.B \-\-help
195Show program help.
196.TP 5
197.B \-\-version
198Show program version.
199.TP 5
200.B \-4
201Use IPv4 when listing.
202.TP 5
203.B \-6
204Use IPv6 when listing.
205.TP 5
206\fB\-T \fIseconds\fR
207Specify find timeout in seconds.
208If 1 or less, \fBippfind\fR stops as soon as it thinks it has found everything.
209The default timeout is 1 second.
210.TP 5
211\fB\-V \fIversion\fR
212Specifies the IPP version when listing.
213Supported values are "1.1", "2.0", "2.1", and "2.2".
214.SH EXIT STATUS
215\fBippfind\fR returns 0 if the result for all processed expressions is true, 1 if the result of any processed expression is false, 2 if browsing or any query or resolution failed, 3 if an undefined option or invalid expression was specified, and 4 if it ran out of memory.
216.SH ENVIRONMENT
217When executing a program, \fBippfind\fR sets the following environment variables for the matching service registration:
218.TP 5
219.B IPPFIND_SERVICE_DOMAIN
220Domain name, e.g., "example.com.", "local.", etc.
221.TP 5
222.B IPPFIND_SERVICE_HOSTNAME
223Fully-qualified domain name, e.g., "printer.example.com.", "printer.local.", etc.
224.TP 5
225.B IPPFIND_SERVICE_NAME
226Service instance name, e.g., "My Fine Printer".
227.TP 5
228.B IPPFIND_SERVICE_PORT
229Port number for server, typically 631 for IPP and 80 for HTTP.
230.TP 5
231.B IPPFIND_SERVICE_REGTYPE
232DNS-SD registration type, e.g., "_ipp._tcp", "_http._tcp", etc.
233.TP 5
234.B IPPFIND_SERVICE_SCHEME
235URI scheme for DNS-SD registration type, e.g., "ipp", "http", etc.
236.TP 5
237.B IPPFIND_SERVICE_URI
238URI for service, e.g., "ipp://printer.local./ipp/print", "http://printer.local./", etc.
239.TP 5
240.B IPPFIND_TXT_\fIKEY\fR
241Values of TXT record \fIKEY\fR (uppercase).
242.SH EXAMPLES
243To show the status of all registered IPP printers on your network, run:
244.nf
245
246 ippfind \-\-ls
247
248.fi
249Similarly, to send a PostScript test page to every PostScript printer, run:
250.nf
251
252 ippfind \-\-txt\-pdl application/postscript \-\-exec ipptool
253 \-f onepage\-letter.ps '{}' print\-job.test \\;
254.fi
255.SH SEE ALSO
256.BR ipptool (1)
257.SH COPYRIGHT
258Copyright \[co] 2013-2019 by Apple Inc.