All pastes #46466 Raw Edit

ayaz-perl

public text v1 · immutable
#46466 ·published 2006-03-21 12:15 UTC
rendered paste body
sub cleanup {
        my ($f_day, $f_month, $f_year) = (0, 0, 0);

        if (skip_file($_)) { return; }

        # File to be deleted should have a filename that matches the pattern:
        # www-<dd>-<mm>-<yyyy>.tar.gz
        if ($_ =~ /^(www)-(\d+)-(\d+)-(\d+)(\.tar\.gz)$/) {
                # Extract the day, month, and year values from the filename.
                ($f_day, $f_month, $f_year) = ($2, $3, $4);

                # In order to delete a file, it must have been created in the same year and month
                # in which this script is executed, and must be older than $days_old from the current
                # day.
                if ($f_year eq $c_year) {
                        if ($f_month eq $c_month) {
                                if ($f_day lt ($c_day - $days_old)) {
#                                       print "Unlinking file:  $find_dir\/$_ \n";
#                                       unlink $_ or print "Couldn't delete $_: $!\n";
                                        &unlink_file($_);
                                }
                        } 
                        # If the script is run on, say, the first of a month, it will NOT
                        # delete ANY tarballs created in the previous month.  This is
                        # a workaround to it.  If the current date is the third of the
                        # month or greater, remove all tarballs created last month.
                        elsif ($f_month lt $c_month) {
                                if ($c_day => 3) {
#                                       print "Unlinking file:  $find_dir\/$_ \n";
#                                       unlink $_ or print "Couldn't delete $_: $!\n";
                                        &unlink_file($_);
                                }
                        }
                }
        }
}