NAME Perinci::CmdLine::Util - Utility routines related to Perinci::CmdLine VERSION This document describes version 0.03 of Perinci::CmdLine::Util (from Perl distribution Perinci-CmdLine-Util), released on 2014-11-01. SYNOPSIS DESCRIPTION FUNCTIONS detect_perinci_cmdline_script(%args) -> [status, msg, result, meta] Detect whether a file is a Perinci::CmdLine-based CLI script. The criteria are: * the file must exist and readable; * (optional, if "include_noexec" is false) file must have its executable mode bit set; * content must start with a shebang "#!"; * either: must be perl script (shebang line contains 'perl') and must contain something like "use Perinci::CmdLine"; * or: a script tagged as a wrapper script and the wrapped script is a Perinci::CmdLine script. Arguments ('*' denotes required arguments): * include_backup => *bool* (default: 0) Include backup files. * include_noexec => *bool* (default: 1) Include scripts that do not have +x mode bit set. * include_wrapper => *bool* (default: 0) Include wrapper scripts. A wrapper script is another Perl script, a shell script, or some other script which wraps a Perinci::CmdLine script. For example, if "list-id-holidays" is a Perinci::CmdLine script, then this shell script called "list-id-joint-leaves" is a wrapper: #!/bin/bash list-id-holidays --is-holiday=0 --is-joint-leave=0 "$@" It makes sense to provide the same completion for this wrapper script as "list-id-holidays". To help this function detect such script, you need to put a tag inside the file: #!/bin/bash # TAG wrapped=list-id-holidays list-id-holidays --is-holiday=0 --is-joint-leave=0 "$@" If this option is enabled, these scripts will be included. * script* => *any* Path to file to be checked. Return value: Returns an enveloped result (an array). First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information. (any) SEE ALSO Perinci::CmdLine HOMEPAGE Please visit the project's homepage at . SOURCE Source repository is at . BUGS Please report any bugs or feature requests on the bugtracker website When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. AUTHOR perlancar COPYRIGHT AND LICENSE This software is copyright (c) 2014 by perlancar@cpan.org. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.