- my ($c, $v, $dumpdir, $dir, $tarballcounter) = @_;
- my $script = 'find -type f -perm +004';
- foreach my $excl (@{ $v->{S}{srcdump_excludes} }) {
- $script .= " \\! -name '$excl'";
+ my ($c, $v, $dumpdir, $item, $outfn) = @_;
+ stat $item or die "$item $!";
+ if (-d _) {
+ my $script = 'find -type f -perm +004';
+ foreach my $excl (@{ $v->{S}{srcdump_excludes} }) {
+ $script .= " \\! -name '$excl'";
+ }
+ $script .= " -print0";
+ return srcdump_dir_cpio($c,$v,$dumpdir,$item,$outfn,$script);
+ } elsif (-f _) {
+ return srcdump_file($c,$v,$dumpdir,$item,$outfn);
+ } else {
+ die "$item not file or directory";