Applications-BackupAndRestore
view release on metacpan or search on metacpan
lib/Applications/BackupAndRestore/Helper.pm view on Meta::CPAN
package Applications::BackupAndRestore::Helper;
use strict;
use warnings;
# maybe bad style, but makes life a lot easier
use base Exporter::;
our @EXPORT = qw(
__
sum
format_date
get_files
get_all_sub_folders
folder_size
strtime
estimated_time
);
use POSIX qw(strftime mktime);
#use Locale::TextDomain ('backup-and-restore');
sub __ { shift @_ }
=functions
print sum(1,2,3); # 6
print format_date('2007-01-30'); # Heute, Gestern, Montag ..
print get_files('/'); # ('a.txt', 'bin') nicht rekursiv
print folder_size('/'); # 2345, (in Bytes) nicht rekursiv
print strtime(1234); # 00:11:08
my ($elapsed_time, $estimated_time, $total_time) =
estimated_time( $startTime, $dx, $total);
=cut
sub sum {
my $sum = 0;
$sum += $_ foreach @_;
return $sum;
}
sub format_date {
my ($date) = @_;
my ( $y, $m, $d ) = split /-/, $date;
$date = mktime( 0, 0, 0, $d, $m - 1, $y - 1900 );
my @today = localtime;
my $today = mktime( 0, 0, 0, @today[ 3, 4, 5 ] );
#printf "$today: %s, %s,%s,%s\n", $date, @today[ 3, 4, 5 ];
my $one_day = 3600 * 24;
return __ "Today" if $today - $date < $one_day;
return __ "Yesterday" if $today - $date < 2 * $one_day;
return strftime( "%A", 0, 0, 0, $d, $m - 1, $y - 1900 ) if $today - $date < 7 * $one_day;
return strftime( "%x", 0, 0, 0, $d, $m - 1, $y - 1900 );
}
sub get_files {
my ($folder) = @_;
return () unless -d $folder;
my @files = grep { !-d $_ } map { "$folder/$_" } grep { chomp } qx{ ls -aC1 "$folder" };
return wantarray ? @files : scalar @files;
}
sub get_all_sub_folders {
my ($folder) = @_;
#printf "%s\n", $folder;
my @folders = get_sub_folders($folder);
push @folders, map { get_all_sub_folders($_) } @folders;
return @folders;
}
sub get_sub_folders {
my ($folder) = @_;
return () unless -d $folder;
opendir( DIR, $folder ) || return ();
( run in 1.353 second using v1.01-cache-2.11-cpan-39bf76dae61 )