-
Notifications
You must be signed in to change notification settings - Fork 3
/
Require
87 lines (80 loc) · 2.76 KB
/
Require
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
__NAME__ purpose
require existence of a capability
__END__
__NAME__ see also
Require,Suggest,Capability
__END__
__NAME__ synopsis
<arg choice='plain' rep='repeat'>
<replaceable>type</replaceable>
<replaceable>type-specific_value</replaceable>
</arg>
__END__
__NAME__ description
Just like &conf-Capability; or &conf-Suggest;, this directive checks for
a feature or capability. When the tested feature is missing, a
catalog is not configured and not included in global configuration.
</para><para>
This is useful to ensure that needed facilities are present, especially if
you run the catalog on different locations.
</para><para>
"Capabilities" you can require are:
<itemizedlist>
<listitem><para>
<literal>globalsub</literal> — existence of a &conf-GlobalSub;
</para></listitem>
<listitem><para>
<literal>sub</literal> — existence of a &conf-Sub;
</para></listitem>
<listitem><para>
<literal>taggroup</literal> — existence of a &conf-TagGroup;
</para></listitem>
<listitem><para>
<literal>usertag</literal> — existence of a &conf-UserTag;
</para></listitem>
<listitem><para>
<literal>module (or perlmodule)</literal> — existence of a &PERL; module. Optional additional argument is the custom Perl module path.
</para></listitem>
<listitem><para>
<literal>include (or perlinclude)</literal> — prepend specified path to &PERL;'s <varname>@INC</varname> include path (makes most sense with &conf-Require;, not with &conf-Suggest; or &conf-Capability; even though it <emphasis>can</emphasis> be called that way for equivalent effect)
</para></listitem>
<listitem><para>
<literal>file</literal> — existence of a readable file
</para></listitem>
<listitem><para>
<literal>executable</literal> — existence of an executable file
</para></listitem>
</itemizedlist>
__END__
__NAME__ example: Requiring existence of all supported items
<programlisting>
__FILENAME__ globalsub my_global_sub
__FILENAME__ sub my_sub
__FILENAME__ taggroup :group1,:group2 :group3
__FILENAME__ usertag my_global_usertag
__FILENAME__ usertag my_catalog_usertag
__FILENAME__ module Archive::Zip
__FILENAME__ module Set::Crontab /usr/local/perl/modules/
__FILENAME__ file /etc/syslog.conf
__FILENAME__ file relative-dir/file
__FILENAME__ executable /usr/local/bin/gfont
__FILENAME__ executable bin/gfont
</programlisting>
__END__
__NAME__ example: Requiring existence of old-style Perl modules
<programlisting>
__FILENAME__ module /path/to/module.pl
</programlisting>
__END__
__NAME__ example: Requiring features
<programlisting>
Require module Archive::Zip
Require usertag table_editor
Require globalsub file_info
</programlisting>
__END__
__NAME__ example: Loading module with expanded search path
<programlisting>
Require module Vend::Swish /usr/lib/swish-e/perl
</programlisting>
__END__