## no critic (RequireUseStrict) package Tapper::Producer::NewestPackage; our $AUTHORITY = 'cpan:TAPPER'; # ABSTRACT: produce preconditions via find latest changed file $Tapper::Producer::NewestPackage::VERSION = '5.0.1'; use Moose; use YAML; use 5.010; use Tapper::Config; use File::stat; sub younger { stat($a)->mtime() <=> stat($b)->mtime() } sub produce { my ($self, $job, $produce) = @_; my $source_dir = $produce->{source_dir}; my @files = sort younger <$source_dir/*>; return { error => 'No files found in $source_dir', } if not @files; my $use_file = pop @files; my $nfs = Tapper::Config->subconfig->{paths}{prc_nfs_mountdir}; die "$use_file not available to Installer" unless $use_file=~/^$nfs/; my $retval = [{ precondition_type => 'package', filename => $use_file, },]; return { precondition_yaml => Dump(@$retval), }; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Tapper::Producer::NewestPackage - produce preconditions via find latest changed file =head2 younger Comparator for files by mtime. =head2 produce Produce resulting precondition. =head1 AUTHOR AMD OSRC Tapper Team =head1 COPYRIGHT AND LICENSE This software is Copyright (c) 2016 by Advanced Micro Devices, Inc.. This is free software, licensed under: The (two-clause) FreeBSD License =cut