From c14c180bfef3b4c8b34e5f634ff3f9f1020596c7 Mon Sep 17 00:00:00 2001 From: Tracey Clark Date: Sun, 20 May 2018 15:28:09 -0500 Subject: [PATCH] Tidied --- file_processing/archive_statements.pl | 87 +++++++++++++++------------ 1 file changed, 47 insertions(+), 40 deletions(-) diff --git a/file_processing/archive_statements.pl b/file_processing/archive_statements.pl index 0b1a959..4368a83 100755 --- a/file_processing/archive_statements.pl +++ b/file_processing/archive_statements.pl @@ -10,71 +10,78 @@ use File::Copy::Recursive qw(dircopy); use File::DirCompare; use Carp qw( croak ); -my $now = localtime; +my $now = localtime; my $year = $now->year; print "Current year: $year\n"; # Get year to archive from current year -my $lastyear = $now->add_years(-1)->year; +my $lastyear = $now->add_years(-1)->year; print("Last year: $lastyear\n"); # Define and create folders -my $financial_folder = '/home/tracey/Documents/financial/current_year/'; -my $financial_archive_folder = '/home/tracey/Documents/financial/1_financial_archives/'; -my $lastyear_folder = $financial_archive_folder . $lastyear . 'FinancialArchives'; -my @folders = ( $financial_folder, $financial_archive_folder, $lastyear_folder ); +my $financial_folder = '/home/tracey/Documents/financial/current_year/'; +my $financial_archive_folder = + '/home/tracey/Documents/financial/1_financial_archives/'; +my $lastyear_folder = + $financial_archive_folder . $lastyear . 'FinancialArchives'; +my @folders = + ( $financial_folder, $financial_archive_folder, $lastyear_folder ); print("Copying current directories to archive folder\n"); print("From: $financial_folder\n"); print("To: $lastyear_folder\n"); -dircopy( $financial_folder, $lastyear_folder ) or croak "Could not copy directories $!"; +dircopy( $financial_folder, $lastyear_folder ) + or croak "Could not copy directories $!"; # Make sure contents match before we do any Deleting # croak on errors to guard against data losss my $same_result = compare_dirs( $financial_folder, $lastyear_folder ); -croak "Error: The folders are not the same!" unless ($same_result == 1) ; +croak "Error: The folders are not the same!" unless ( $same_result == 1 ); # Delete all files from current year from archive folders # Also delete files from last year in current year folder delete_dirs( $financial_folder, $lastyear_folder, $year, $lastyear ); sub compare_dirs { - my ( $dir1, $dir2 ) = @_; - my $same = 1; - print("Making sure the copy was complete and all files match\n"); - File::DirCompare->compare($dir1, $dir2, sub { - my ($a, $b) = @_; - if (! $b) { - printf "Only in %s: %s\n", dirname($a), basename($a); - $same = 0; - } elsif (! $a) { - printf "Only in %s: %s\n", dirname($b), basename($b); - $same = 0; - } else { - print "Files $a and $b differ\n"; - $same = 0; - } - }); - print("Diff of directories done\n"); - return $same; + my ( $dir1, $dir2 ) = @_; + my $same = 1; + print("Making sure the copy was complete and all files match\n"); + File::DirCompare->compare( + $dir1, $dir2, + sub { + my ( $a, $b ) = @_; + if ( !$b ) { + printf "Only in %s: %s\n", dirname($a), basename($a); + $same = 0; + } + elsif ( !$a ) { + printf "Only in %s: %s\n", dirname($b), basename($b); + $same = 0; + } + else { + print "Files $a and $b differ\n"; + $same = 0; + } + } + ); + print("Diff of directories done\n"); + return $same; } sub delete_dirs { - my ( $new_dir, $old_dir, $curr_year, $last_year ) = @_; - print("Deleting files from current year $curr_year in archives\n"); - print("and files from last year $last_year from current folder\n"); + my ( $new_dir, $old_dir, $curr_year, $last_year ) = @_; + print("Deleting files from current year $curr_year in archives\n"); + print("and files from last year $last_year from current folder\n"); - my @this_year_files = File::Find::Rule->file() - ->name("*$curr_year*") - ->in($old_dir); - my @last_year_files = File::Find::Rule->file() - ->name("*$last_year*") - ->in($new_dir); + my @this_year_files = + File::Find::Rule->file()->name("*$curr_year*")->in($old_dir); + my @last_year_files = + File::Find::Rule->file()->name("*$last_year*")->in($new_dir); - unlink @this_year_files; - print("Deleted all $curr_year files from the folder for $last_year\n"); - unlink @last_year_files; - print("Deleted all $last_year files from the folder for $curr_year\n"); + unlink @this_year_files; + print("Deleted all $curr_year files from the folder for $last_year\n"); + unlink @last_year_files; + print("Deleted all $last_year files from the folder for $curr_year\n"); - return; + return; }