The Perl module Run::Parts
offers the functionality of Debian's run-parts
tool in Perl.
Run::Parts
runs all the executable files named within constraints
described in run-parts(8)
and Run::Parts::Perl
, found in the given
directory. Other files and directories are silently ignored.
Additionally it can just print the names of the all matching files (not limited to executables, but ignores blacklisted files like e.g. backup files), but don't actually run them.
This is useful when functionality or configuration is split over multiple files in one directory. A typical convention is that the directory name ends in ".d". Common examples for such splitted configuration directories:
/etc/cron.d/
/etc/apt/apt.conf.d/
/etc/apt/sources.list.d/,
/etc/aptitude-robot/pkglist.d/
/etc/logrotate.d/
/etc/rsyslog.d/
use Run::Parts;
my $rp = Run::Parts->new('directory'); # chooses backend automatically
my $rpp = Run::Parts->new('directory', 'perl'); # pure perl backend
my $rpd = Run::Parts->new('directory', 'debian'); # uses /bin/run-parts
my @file_list = $rp->list;
my @executables_list = $rpp->test;
my $commands_output = $rpd->run;
...
Run::Parts
contains two backend implementations.
Run::Parts::Debian
actually uses /bin/run-parts
and
Run::Parts::Perl
is a pure Perl implementation of a basic set of
run-parts
' functionality.
Run::Parts::Debian
may or may not work with RedHat's simplified
shell-script based reimplementation of Debian's run-parts
.
By default Run::Parts
uses Run::Parts::Debian
if /bin/run-parts
exists, Run::Parts::Perl
otherwise. But you can also choose any of
the backends explicitly.
- Git repository on GitHub
- On the Comprehensive Perl Archive Network (CPAN):
- librun-parts-perl in Debian QA page
- librun-parts-perl in Ubuntu Launchpad page
Copyright 2013-2014 Axel Beckert [email protected].
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation, either version 1, or (at your option) any later version; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.
- Travis CI Build Status
(after each
git push
) - Coveralls.io Statement Coverage Status
(after each
git push
) - CPANTS Kwalitee (once after each upload to CPAN)
- CPAN Testers Smoke Tests (on many platforms and Perl versions after each upload to CPAN)
- Piuparts (package installation, upgrading and removal testing; at least after each upload to Debian)
- Debcheck (mostly dependency checking; at least after each upload to Debian)
- Code Statistics on OpenHub (formerly Ohloh) (every few days)
- Code Coverage of Run-Parts 0.08 at cpancover.com