App-DiffTarballs

 view release on metacpan or  search on metacpan

lib/App/DiffTarballs.pm  view on Meta::CPAN

        },
    ],
};
sub diff_tarballs {
    require Cwd;
    require File::Temp;
    require ShellQuote::Any::Tiny;

    my %args = @_;

    return [404, "No such file or directory: $args{tarball1}"]
        unless -f $args{tarball1};
    return [404, "No such file or directory: $args{tarball2}"]
        unless -f $args{tarball2};

    my $abs_tarball1 = Cwd::abs_path($args{tarball1});
    my $abs_tarball2 = Cwd::abs_path($args{tarball2});

    return [404, "No such file or directory: $args{tarball1}"]
        unless -f $args{tarball1};
    return [404, "No such file or directory: $args{tarball2}"]
        unless -f $args{tarball2};

    my $dir1 = File::Temp::tempdir(CLEANUP => 1);
    my $dir2 = File::Temp::tempdir(CLEANUP => 1);

    $CWD = $dir1;
    system({log=>1, die=>1}, "tar", "xf", $abs_tarball1);
    system({log=>1, die=>1}, "tar", "xf", $abs_tarball2);
    return [304, "$args{tarball1} and $args{tarball2} are the same file"]
        if $abs_tarball1 eq $abs_tarball2;



( run in 0.767 second using v1.01-cache-2.11-cpan-39bf76dae61 )