Help language development. Donate to The Perl Foundation

Repository::Precomp::Cleanup zef:lizmat last updated on 2022-04-22

bin/cleanup-precomp
#!/usr/bin/env raku

use Repository::Precomp::Cleanup:ver<0.0.1>:auth<zef:lizmat>;

#| Remove outdated precomp files from repositories
unit sub MAIN(*@names);

my int $seen;
my int $freed;
my sub cleanup-repos(@repos) {
    for @repos -> $repo {
        with cleanup-precomp($repo) {
            ++$seen;
            $freed += $_;
        }
    }
}

if @names {
    cleanup-repos @names.map: -> $name {
        if (my $prefix := $name.IO).d {
            CompUnit::Repository::FileSystem.new(:$prefix)
        }
        elsif CompUnit::RepositoryRegistry.repository-for-name($name) -> $repo {
            $repo
        }
    }
}
else {
    cleanup-repos $*REPO.repo-chain;
}
say "Freed $freed.flip.comb(3).join(",").flip() bytes from $seen repositor{
    $seen == 1 ?? "y" !! "ies"
}.";

# vim: expandtab shiftwidth=4