Initial commit of archive_statements.pl with basic logic and a lot of print statements instead of code that does stuff
This commit is contained in:
parent
dde6381bb5
commit
f53f0ac425
1 changed files with 65 additions and 0 deletions
65
file_processing/archive_statements.pl
Executable file
65
file_processing/archive_statements.pl
Executable file
|
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use Time::Piece;
|
||||||
|
use File::Find::Rule; # find all the subdirectories of a given directory
|
||||||
|
# http://search.cpan.org/~rclamp/File-Find-Rule-0.32/README
|
||||||
|
use File::Path qw(make_path remove_tree);
|
||||||
|
use File::Copy;
|
||||||
|
|
||||||
|
my $now = localtime;
|
||||||
|
my $year = $now->year;
|
||||||
|
print "Year is $year\n";
|
||||||
|
|
||||||
|
# Get year to archive from current year
|
||||||
|
my $lastyear = $now->add_years(-1)->year;
|
||||||
|
my $lasttaxyear = $now->add_years(-2)->year;
|
||||||
|
|
||||||
|
print("Last year was $lastyear and tax year was $lasttaxyear\n");
|
||||||
|
|
||||||
|
# Define and create folders
|
||||||
|
my ( $financial_folder, $financial_archive_folder, $lastyear_folder, $lasttaxyear_folder );
|
||||||
|
$financial_folder = '/home/tracey/Documents/financial/current_year/';
|
||||||
|
$financial_archive_folder = '~/Documents/financial/1_financial_archives/';
|
||||||
|
$lastyear_folder = $financial_archive_folder . $lastyear . 'FinancialArchives';
|
||||||
|
$lasttaxyear_folder = $financial_archive_folder . $lasttaxyear . 'TaxArchives';
|
||||||
|
my @folders = ( $financial_folder, $financial_archive_folder, $lastyear_folder, $lasttaxyear_folder );
|
||||||
|
|
||||||
|
foreach my $folder ( @folders ) {
|
||||||
|
unless( -d $folder ) {
|
||||||
|
print("Creating the folder \"$folder\"\n");
|
||||||
|
die "Could not create directory! $!" unless make_path($folder);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get current folder list for nonempty directories
|
||||||
|
my $find_rule = File::Find::Rule->new;
|
||||||
|
$find_rule->nonempty->maxdepth(1)->mindepth(1)->relative;
|
||||||
|
my @curr_subdirs = $find_rule->directory->in( $financial_folder );
|
||||||
|
|
||||||
|
print("Copying current directories to archives folder\n");
|
||||||
|
foreach my $curr_subdir (@curr_subdirs) {
|
||||||
|
my $targetdir = $lastyear_folder . "/" . $curr_subdir;
|
||||||
|
print ("Target dir is $targetdir\n");
|
||||||
|
#unless( -d $targetdir ){
|
||||||
|
print("Copying directory \"$curr_subdir\"\n");
|
||||||
|
print("Will copy to " . $targetdir . "/\n");
|
||||||
|
# copy directories to archive directories the perl way
|
||||||
|
#copy( $curr_subdir, $lastyear_folder ) or die "Copy failed: $!";
|
||||||
|
#}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# compare new directories to old directories to make sure they are the same
|
||||||
|
# Or DIE
|
||||||
|
|
||||||
|
# For each CURR folder
|
||||||
|
# For each file
|
||||||
|
# If mtime year < this year
|
||||||
|
# Delete file
|
||||||
|
|
||||||
|
# For each ARCH folder
|
||||||
|
# For each file
|
||||||
|
# If mtime year > last year
|
||||||
|
# Delete file
|
||||||
Loading…
Add table
Add a link
Reference in a new issue