s
experimental::builtin
);
use Time::Piece;
use Path::Tiny ();
use CPANSEC::Admin::Util;
use JSON ();
use List::Util ();
class CPANSEC::Admin::Command::Publish {
field %options;
my $curr
:path($options{published_dir}, $osv->{id} . '.json');
die "$target already exists!" if $target->exists;
$target->spew_raw(JSON::encode_json($osv));
$file->remove;
$curr
::Tiny::path($published_dir)->children(qr/\ACPANSEC\-\d+\-\d+\.json\z/);
my ($year, $id) = $file =~ /\ACPANSEC\-(\d+)\-(\d+)\.json\z/;
$id = 0 if $year < $time->year;
return $i