File Coverage

blib/lib/Acme/CPANModules/Getopt.pm
Criterion Covered Total %
statement 11 11 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 15 15 100.0


line stmt bran cond sub pod time code
1             package Acme::CPANModules::Getopt;
2              
3 1     1   484963 use strict;
  1         2  
  1         107  
4              
5             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
6             our $DATE = '2023-10-29'; # DATE
7             our $DIST = 'Acme-CPANModules-Getopt'; # DIST
8             our $VERSION = '0.003'; # VERSION
9              
10 1     1   23 use 5.010001;
  1         4  
11 1     1   5 use strict;
  1         2  
  1         27  
12 1     1   5 use warnings;
  1         2  
  1         671  
13              
14             our $LIST = {
15             summary => 'List of modules that parse command-line options',
16             entry_features => {
17             uses_spec => {summary => 'Whether user need to specify some sort of "spec" (list of options and potentially more details)'},
18             uses_getopt_long => {summary => 'Whether module uses Getopt::Long (or is Getopt::Long itself)'},
19             auto_help => {summary => 'Whether the module can generate automatic help message (usually from spec) when user specifies something like --help'},
20             auto_version => {summary => 'Whether the module can generate automatic version message when user specifies something like --version'},
21             file => {summary => 'Whether the module supports getting options from a file'},
22             subcommand => {summary => 'Whether the module supports subcommands'},
23             },
24             entries => [
25             {
26             module => 'Getopt::Std',
27             features => {
28             uses_spec => 1,
29             uses_getopt_long => 0,
30             auto_help => {value=>0, summary=>'Only calls main::HELP_MESSAGE'},
31             auto_version => {value=>0, summary=>'Only calls main::VERSION_MESSAGE'},
32             },
33             },
34             {
35             module => 'Getopt::Long',
36             features => {
37             uses_spec => 1,
38             uses_getopt_long => 1,
39             auto_help => 1,
40             auto_version => 1,
41             },
42             },
43             {
44             module => 'Getopt::Tiny',
45             features => {
46             uses_spec => 1,
47             uses_getopt_long => 0,
48             auto_help => 0,
49             auto_version => 0,
50             },
51             },
52             {
53             module => 'Getopt::Long::Descriptive',
54             features => {
55             uses_spec => 1,
56             uses_getopt_long => 1,
57             auto_help => 1,
58             auto_version => 0,
59             },
60             },
61             {
62             module => 'Getopt::Long::More',
63             features => {
64             uses_spec => 1,
65             uses_getopt_long => 1,
66             auto_help => 1,
67             auto_version => 1,
68             file => 0, # planned
69             subcommand => 0, # planned
70             },
71             },
72             {
73             module => 'Getopt::Simple',
74             features => {
75             uses_spec => 1,
76             uses_getopt_long => 1,
77             auto_help => 1,
78             auto_version => 1,
79             },
80             },
81             {
82             module => 'Getopt::Compact',
83             features => {
84             uses_spec => 1,
85             uses_getopt_long => 1,
86             auto_help => 1,
87             auto_version => 1,
88             },
89             },
90             {
91             module => 'Opt::Imistic',
92             features => {
93             uses_spec => 0,
94             uses_getopt_long => 0,
95             auto_help => 0,
96             auto_version => 0,
97             },
98             },
99             {
100             module => 'Getopt::Valid',
101             features => {
102             uses_spec => 1,
103             uses_getopt_long => 1,
104             auto_help => 1,
105             auto_version => 1,
106             },
107             },
108             {
109             module => 'Getopt::Std::Strict',
110             features => {
111             uses_spec => 1,
112             uses_getopt_long => 0,
113             auto_help => 0,
114             auto_version => 0,
115             },
116             },
117             {
118             module => 'Getopt::Declare',
119             features => {
120             uses_spec => 1,
121             uses_getopt_long => 0,
122             auto_help => 1,
123             auto_version => 1,
124             },
125             },
126             {
127             module => 'Getopt::Euclid',
128             features => {
129             uses_spec => 1,
130             uses_getopt_long => 0,
131             auto_help => 1, # from POD
132             auto_version => 1, #from POD
133             },
134             },
135             {
136             module => 'Docopt',
137             features => {
138             uses_spec => 1,
139             uses_getopt_long => 0,
140             auto_help => 1,
141             auto_version => 1, #?
142             },
143             },
144             {
145             module => 'Getopt::Auto',
146             features => {
147             uses_spec => 1,
148             uses_getopt_long => 0,
149             auto_help => 1, # from POD
150             auto_version => 1, # from POD
151             },
152             },
153             {
154             module => 'Getopt::Lucid',
155             features => {
156             uses_spec => 1,
157             uses_getopt_long => 0,
158             auto_help => 0,
159             auto_version => 0,
160             },
161             },
162             {
163             module => 'Getopt::ArgvFile',
164             features => {
165             uses_spec => 1,
166             uses_getopt_long => 1,
167             auto_help => 1,
168             auto_version => 1,
169             file => 1,
170             },
171             },
172             {
173             module => 'App::Options',
174             features => {
175             uses_spec => 1,
176             uses_getopt_long => 0,
177             auto_help => 1,
178             auto_version => 1, #?
179             file => 1,
180             },
181             },
182             {
183             module => 'MooseX::Getopt',
184             features => {
185             uses_spec => 1,
186             uses_getopt_long => {value=>1, summary=>'Uses Getopt::Long::Descriptive'},
187             auto_help => 1,
188             auto_version => 1,
189             file => {value=>0, summary=>'Needs separate module: MooseX::ConfigFromFile or MooseX::SimpleConfig'},
190             },
191             },
192             {
193             module => 'MooX::Options',
194             features => {
195             uses_spec => 1,
196             uses_getopt_long => {value=>1, summary=>'Uses Getopt::Long::Descriptive'},
197             auto_help => 1,
198             auto_version => 0,
199             file => 1,
200             },
201             },
202             {
203             module => 'Getopt::Attribute',
204             features => {
205             uses_spec => 1,
206             uses_getopt_long => 1,
207             auto_help => 1,
208             auto_version => 1,
209             },
210             },
211             {
212             module => 'Getopt::Modular',
213             features => {
214             uses_spec => 1,
215             uses_getopt_long => 1,
216             auto_help => 1,
217             auto_version => 1,
218             },
219             },
220             # App::Cmd
221             # App::Spec
222             {
223             module => 'Smart::Options',
224             features => {
225             uses_spec => 1,
226             uses_getopt_long => 0,
227             auto_help => 1,
228             auto_version => 0,
229             subcommand => 1,
230             file => 1,
231             },
232             },
233             {
234             module => 'Getopt::ArgParse',
235             features => {
236             uses_spec => 1,
237             uses_getopt_long => 1,
238             auto_help => 0, #?
239             auto_version => 0, #?
240             subcommand => 1,
241             },
242             },
243             {
244             module => 'Getopt::Kingpin',
245             features => {
246             uses_spec => 1,
247             uses_getopt_long => 0,
248             auto_help => 1, #?
249             auto_version => 1, #?
250             subcommand => 1,
251             },
252             },
253             {
254             module => 'Getopt::Complete',
255             features => {
256             uses_spec => 1,
257             uses_getopt_long => 0,
258             auto_help => 0, #?
259             auto_version => 0, #?
260             },
261             },
262             {
263             module => 'Getopt::Long::Complete',
264             features => {
265             uses_spec => 1,
266             uses_getopt_long => 1,
267             auto_help => 1,
268             auto_version => 1,
269             },
270             },
271             {
272             module => 'Getopt::Long::Subcommand',
273             features => {
274             uses_spec => 1,
275             uses_getopt_long => 1,
276             auto_help => 1,
277             auto_version => 1,
278             subcommand => 1,
279             },
280             },
281             {
282             module => 'Getopt::Long::Less',
283             features => {
284             uses_spec => 1,
285             uses_getopt_long => 0,
286             auto_help => 0,
287             auto_version => 0,
288             },
289             },
290             {
291             module => 'Getopt::Long::EvenLess',
292             features => {
293             uses_spec => 1,
294             uses_getopt_long => 0,
295             auto_help => 0,
296             auto_version => 0,
297             },
298             },
299             # Getopt::Panjang
300             # Perinci::CmdLine
301             # ScriptX
302             ],
303              
304             };
305              
306             1;
307             # ABSTRACT: List of modules that parse command-line options
308              
309             __END__