view release on metacpan or search on metacpan
lib/App/tkiv.pm view on Meta::CPAN
L<Image::Info> and ImageMagick.
=head1 WARRANTY
The fact that I use it on my own picture sets is by no means a guarantee
that the software is without bugs. Use with care, and make backups of all
pictures you care about before experimenting.
=head1 AUTHOR
H.Merijn Brand F<E<lt>h.m.brand@xs4all.nlE<gt>> wrote this for his own
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/tmclean.pm view on Meta::CPAN
my $self = shift;
if (!$self->dry_run && $ENV{USER} ne 'root') {
die "tmutil requires root privileges\n";
}
$self->cmd(qw/tmutil stopbackup/);
$self->cmd(qw/tmutil disable/); # need sudo
my @targets = $self->backups2delete;
unless (@targets) {
logf 'no deletion targets found';
return 0;
}
my $mount_point = $self->mount_point;
logf "following backups to be deleted:\n %s", join("\n ", @targets);
for my $bak (@targets) {
$self->cmd(qw/tmutil delete/, $bak); # need sudo
}
my $dev_name = dev_name($targets[0]);
$self->cmd(qw/hdiutil detach/, $dev_name);
my $backupbundle_path = sprintf '%s/%s.sparsebundle', $mount_point, $self->machine_name;
if (! -d $backupbundle_path) {
# backupbundle path is changed after Catalina
$backupbundle_path =~ s/\.sparsebundle$/.backupbundle/;
}
$self->cmd(qw/hdiutil compact/, $backupbundle_path); # need sudo
$self->cmd(qw/tmutil enable/); # need sudo
}
sub backups2delete {
my $self = shift;
my @backups = `tmutil listbackups`;
if ($? != 0) {
die "failed to execute `tmutil listbackups`: $?\n";
}
# e.g. /Volumes/Time Machine Backup/Backups.backupdb/$machine/2018-01-07-033608
return grep {
chomp;
my @paths = split m!/!, $_;
my $backup_date = eval { Time::Piece->strptime($paths[-1], '%Y-%m-%d-%H%M%S') };
$backup_date && $self->before_tp > $backup_date;
} @backups;
}
sub mount_point {
my $self = shift;
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bBuild.bat$
\bBuild.COM$
\bBUILD.COM$
\bbuild.com$
# Avoid temp and backup files.
~$
\.old$
\#$
\b\.#
\.bak$
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bbuild.com$
# and Module::Build::Tiny generated files
\b_build_params$
# Avoid temp and backup files.
~$
\.old$
\#$
\b\.#
\.bak$
view all matches for this distribution
view release on metacpan or search on metacpan
% upf add-delete-user-groups [--add-to-json=s] [--add-to=s+]
[--config-path=path | -c] [--config-profile=profile | -P]
[--delete-from-json=s] [--delete-from=s+] [--etc-dir=s]
[--format=name] [--json] [--(no)naked-res] [--no-config | -C]
[--no-env] [--page-result[=program]] <user>
% upf add-group [--backup] [--config-path=path | -c]
[--config-profile=profile | -P] [--etc-dir=s] [--format=name]
[--gid=s] [--json] [--max-gid=s] [--members-json=s] [--members=s]
[--min-gid=s] [--(no)naked-res] [--no-backup] [--no-config | -C]
[--no-env] [--nobackup] [--page-result[=program]] <group>
% upf add-user [--backup] [--config-path=path | -c]
[--config-profile=profile | -P] [--encpass=s] [--etc-dir=s]
[--expire-date=s] [--format=name] [--gecos=s] [--gid=s] [--group=s]
[--home=s] [--json] [--last-pwchange=s] [--max-gid=s]
[--max-pass-age=s] [--max-uid=s] [--min-gid=s] [--min-pass-age=s]
[--min-uid=s] [--(no)naked-res] [--no-backup] [--no-config | -C]
[--no-env] [--nobackup] [--page-result[=program]]
[--pass-inactive-period=s] [--pass-warn-period=s] [--pass=s]
[--shell=s] [--uid=s] <user>
% upf add-user-to-group [--config-path=path | -c]
[--config-profile=profile | -P] [--etc-dir=s] [--format=name] [--json]
[--(no)naked-res] [--no-config | -C] [--no-env]
[--page-result[=program]] <user> <group>
% upf delete-group [--backup] [--config-path=path | -c]
[--config-profile=profile | -P] [--etc-dir=s] [--format=name] [--json]
[--(no)naked-res] [--no-backup] [--no-config | -C] [--no-env]
[--nobackup] [--page-result[=program]] <group>
% upf delete-user [--backup] [--config-path=path | -c]
[--config-profile=profile | -P] [--etc-dir=s] [--format=name] [--json]
[--(no)naked-res] [--no-backup] [--no-config | -C] [--no-env]
[--nobackup] [--page-result[=program]] <user>
% upf delete-user-from-group [--config-path=path | -c]
[--config-profile=profile | -P] [--etc-dir=s] [--format=name] [--json]
[--(no)naked-res] [--no-config | -C] [--no-env]
[--page-result[=program]] <user> <group>
% upf get-group [--config-path=path | -c] [--config-profile=profile | -P]
% upf list-users-and-groups [--config-path=path | -c]
[--config-profile=profile | -P] [--detail] [--etc-dir=s]
[--format=name] [--json] [--(no)naked-res] [--no-config | -C]
[--no-detail] [--no-env] [--nodetail] [--page-result[=program]]
[--with-field-names] [--without-field-names]
% upf modify-group [--admins=s] [--backup] [--config-path=path | -c]
[--config-profile=profile | -P] [--encpass=s] [--etc-dir=s]
[--format=name] [--gid=s] [--json] [--members=s] [--(no)naked-res]
[--no-backup] [--no-config | -C] [--no-env] [--nobackup]
[--page-result[=program]] [--pass=s] <group>
% upf modify-user [--backup] [--config-path=path | -c]
[--config-profile=profile | -P] [--encpass=s] [--etc-dir=s]
[--expire-date=s] [--format=name] [--gecos=s] [--gid=s] [--home=s]
[--json] [--last-pwchange=s] [--max-pass-age=s] [--min-pass-age=s]
[--(no)naked-res] [--no-backup] [--no-config | -C] [--no-env]
[--nobackup] [--page-result[=program]] [--pass-inactive-period=s]
[--pass-warn-period=s] [--shell=s] [--uid=s] <user>
% upf set-user-groups [--config-path=path | -c] [--config-profile=profile
| -P] [--etc-dir=s] [--format=name] [--json] [--(no)naked-res]
[--no-config | -C] [--no-env] [--page-result[=program]] <user>
<groups> ...
% upf set-user-password [--backup] [--config-path=path | -c]
[--config-profile=profile | -P] [--etc-dir=s] [--format=name] [--json]
[--(no)naked-res] [--no-backup] [--no-config | -C] [--no-env]
[--nobackup] [--page-result[=program]] <user> <pass>
% upf user-exists [--config-path=path | -c] [--config-profile=profile |
-P] [--etc-dir=s] [--format=name] [--json] [--(no)naked-res]
[--no-config | -C] [--no-env] [--page-result[=program]] [--uid=s]
[--user=s]
=head2 Options for subcommand add-group
=over
=item B<--backup>
Whether to backup when modifying files.
Backup is written with `.bak` extension in the same directory. Unmodified file
will not be backed up. Previous backup will be overwritten.
=item B<--gid>=I<s>
Pick a specific new GID.
=head2 Options for subcommand add-user
=over
=item B<--backup>
Whether to backup when modifying files.
Backup is written with `.bak` extension in the same directory. Unmodified file
will not be backed up. Previous backup will be overwritten.
=item B<--encpass>=I<s>
Encrypted password.
=head2 Options for subcommand delete-group
=over
=item B<--backup>
Whether to backup when modifying files.
Backup is written with `.bak` extension in the same directory. Unmodified file
will not be backed up. Previous backup will be overwritten.
=item B<--group>=I<s>*
=back
=head2 Options for subcommand delete-user
=over
=item B<--backup>
Whether to backup when modifying files.
Backup is written with `.bak` extension in the same directory. Unmodified file
will not be backed up. Previous backup will be overwritten.
=item B<--user>=I<s>*
=back
=item B<--admins>=I<s>
It must be a comma-separated list of user names, or empty.
=item B<--backup>
Whether to backup when modifying files.
Backup is written with `.bak` extension in the same directory. Unmodified file
will not be backed up. Previous backup will be overwritten.
=item B<--encpass>=I<s>
Encrypted password.
=head2 Options for subcommand modify-user
=over
=item B<--backup>
Whether to backup when modifying files.
Backup is written with `.bak` extension in the same directory. Unmodified file
will not be backed up. Previous backup will be overwritten.
=item B<--encpass>=I<s>
Encrypted password.
=head2 Options for subcommand set-user-password
=over
=item B<--backup>
Whether to backup when modifying files.
Backup is written with `.bak` extension in the same directory. Unmodified file
will not be backed up. Previous backup will be overwritten.
=item B<--pass>=I<s>*
=item B<--user>=I<s>*
delete_from (see --delete-from)
user (see --user)
=head2 Configuration for subcommand add-group
backup (see --backup)
gid (see --gid)
group (see --group)
max_gid (see --max-gid)
members (see --members)
min_gid (see --min-gid)
=head2 Configuration for subcommand add-user
backup (see --backup)
encpass (see --encpass)
expire_date (see --expire-date)
gecos (see --gecos)
gid (see --gid)
group (see --group)
group (see --group)
user (see --user)
=head2 Configuration for subcommand delete-group
backup (see --backup)
group (see --group)
=head2 Configuration for subcommand delete-user
backup (see --backup)
user (see --user)
=head2 Configuration for subcommand delete-user-from-group
group (see --group)
with_field_names (see --without-field-names)
=head2 Configuration for subcommand modify-group
admins (see --admins)
backup (see --backup)
encpass (see --encpass)
gid (see --gid)
group (see --group)
members (see --members)
pass (see --pass)
=head2 Configuration for subcommand modify-user
backup (see --backup)
encpass (see --encpass)
expire_date (see --expire-date)
gecos (see --gecos)
gid (see --gid)
home (see --home)
groups (see --groups)
user (see --user)
=head2 Configuration for subcommand set-user-password
backup (see --backup)
pass (see --pass)
user (see --user)
=head2 Configuration for subcommand user-exists
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bbuild.com$
# and Module::Build::Tiny generated files
\b_build_params$
# Avoid temp and backup files.
~$
\.old$
\#$
\b\.#
\.bak$
view all matches for this distribution
view release on metacpan or search on metacpan
.perltidyrc view on Meta::CPAN
--add-newlines
--add-semicolons
--add-whitespace
--backup-and-modify-in-place
--backup-file-extension="bak"
--blanks-before-blocks
--blanks-before-comments
--blanks-before-subs
--block-brace-tightness=0
--block-brace-vertical-tightness=0
view all matches for this distribution
view release on metacpan or search on metacpan
lib/AppleII/LibA2.pm view on Meta::CPAN
This is a BETA release of LibA2. There's some documentation, but it's
not complete. If you want to see the rest of the documentation, then
send email! Otherwise, I'll probably never get around to writing it.
Until then, use the source, Luke! There are still probably some bugs,
and the interfaces might still change. Use at your own risk. Keep a
recent backup handy. Wait sixty minutes before swimming.
All this having been said, I'm not aware of any serious bugs in LibA2
(besides the ones listed in the BUGS section below). Good luck!
I would very much like to hear from everyone who tries LibA2. The
more comments I get, the more likely I am to do more work on it.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
Applications::BackupAndRestore - a linux frontend for tar
=head1 DESCRIPTION
BackupAndRestore is a backup utility for making incremental backups by using GNU Tar.
Core features:
=over
=item *
Incremental backup with quick and easy restoration of files
=item *
Handels different backup locations
=item *
Full support for excluding files and folders and even file patterns (shell regex)
=item *
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
=head1
To start up Backup & Restore from a terminal window, type B<BackupAndRestore> and then press C<Enter>.
Backup & Restore has a List View where you see every single backup with time, date, changed files and the exact space required on your harddrive.
Above the list view there is a File Chooser Button where you can select a folder to backup. Position the cursor over File Chooser Button and press the right mouse button. A pop-up menu appears. Choose a folder from the pop-up menu. Drag a folder ico...
Right hand to the File Chooser Button there is a Recycle Button. The recycle button keeps a list of folders you have saved. For example, place the cursor over the recycle button on a Backup & Restore window; then press the left mouse button to see a ...
Below the list view there is a backup button.
=head2 Backup In Progress Notification
The Backup In Progress Notification is illustrated in Figure 1-2.
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
: 1
);
$this->restore_folder->set_current_folder( $this->gconf("restore-folder") || $ENV{HOME} );
$this->store_folder->set_current_folder( $this->gconf("store-folder") || $ENV{HOME} );
$this->store_folder_name->set_text( $this->gconf("store-folder-name") || "Backup" );
$this->folder->set_current_folder( $this->gconf("current-backup-folder") || $ENV{HOME} );
$this->configure_expander;
$this->build_tree;
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
#add $tree_column to the treeviewGtk2::CellRenderer
$tree_view->append_column($tree_column);
}
#backup
#
sub on_backup_folder_changed {
my ($this) = @_;
return unless $this->folder->get_filename;
return if abs_path( $this->folder->get_filename ) eq $this->gconf("current-backup-folder");
printf "on_backup_folder_changed %s\n", abs_path $this->folder->get_filename if $DEBUG > 0;
$this->gconf( "current-backup-folder", abs_path $this->folder->get_filename );
$this->fill_tree;
return;
}
sub on_folder_recycle_button {
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
if ( -e $folder ) {
my ( $day_iter, $day, $day_folder_size, $day_folder_real_size, $day_folder_files ) = ( undef, "", 0, 0, 0 );
my $current_dat = "$folder/$CurrentDat";
my $date_of_last_backup = $this->fetch_restore_date($folder);
#printf "%s\n", $date_of_last_backup;
my @filenames = reverse grep { m/\.tar\.bz2$/ } get_files($folder);
foreach my $filename (@filenames) {
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
my $size = ( -s $filename ) + ( -s $tardat );
$size += -s $current_dat unless $day;
################################################################
my $infofile = "$folder/$basename.info.txt";
my $info = $this->get_backup_info( $filename, $infofile );
################################################################
# append day folder
my ( $date, $time ) = split / /o, $basename;
if ( $date ne $day ) {
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
scalar @{ $info->{files} },
COL_LABEL,
__("$info->{label}")
. ( "$info->{label}" ? ", " : "" )
. (
$date_of_last_backup eq $basename
? __("Last backup.")
: ""
),
COL_PATH,
$filename,
COL_LAST_BACKUP,
$date_of_last_backup eq $basename,
COL_WEIGHT,
800,
)
);
}
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
$this->exclude_configure;
#$this->window->set_sensitive(TRUE);
}
sub get_backup_info {
my ( $this, $filename, $infoname ) = @_;
tie my %info, 'Tie::DataDumper', $infoname
or warn "Problem tying %info: $!";
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
printf "*** %s\n", $path if $DEBUG > 3;
system $TarOpenCmd, $path;
}
else {
my $last_backup = $this->tree_view->get_model->get( $selected, COL_LAST_BACKUP );
printf "*** %s\n", $last_backup ? 1 : 0 if $DEBUG > 3;
if ($last_backup) {
$this->backup_remove_button->set_sensitive(TRUE);
}
else {
$this->backup_remove_button->set_sensitive(FALSE);
}
}
}
return;
}
#backup
#
sub on_backup_button_clicked {
my ($this) = @_;
print "on_backup_button_clicked $this\n" if $DEBUG > 3;
$this->window->set_sensitive(FALSE);
$this->backup_changed_files_label->set_text(0);
$this->backup_folders_label->set_text(0);
$this->backup_elapsed_time_label->set_text( sprintf "%s", strtime(0) );
$this->backup_estimated_time_label->set_text( sprintf "%s / %s", map { strtime(0) } ( 0, 0 ) );
$this->backup_file_label->set_text("");
$this->backup_progress(0);
$this->backup_notification->present;
$this->backup_folder;
$this->{folder_recycle_button}->set_uri( $this->folder->get_uri );
$this->fill_tree;
$this->backup_notification->hide;
$this->window->set_sensitive(TRUE);
return;
}
sub rmdir_p {
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
$folder = dirname $folder;
}
return;
}
sub backup_folder {
my ($this) = @_;
#$this->{backup_folder} = TRUE;
my $date = strftime( "%F %X", localtime );
$this->log_add_text( sprintf "\n%s\n", "*" x 42 );
$this->log_add_text( sprintf __("%s Starting backup . . .\n"), $date );
$this->backup_progress(0);
$this->backup_notification->{startTime} = time;
my $folder = abs_path $this->folder->get_filename;
my $store = $this->get_store_folder;
my $mainstore = $this->get_main_store_folder;
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
my $tardat = "$store/$date.dat.bz2";
my $excludes = "$store/$ExcludesFile";
my $first = -e $excludes;
$this->{cleanup} = sub {
print "cleanup backup @_\n" if $DEBUG > 3;
unlink $tardat;
unlink $process_dat;
unlink $archive;
unless ( -s $current_dat ) {
unlink $current_dat;
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
my $utf8 = Unicode::UTF8simple->new;
while (<TAR>) {
print $_ if $DEBUG > 3;
#last unless $this->{backup_folder};
chomp;
$_ = $utf8->fromUTF8( "iso-8859-1", $_ );
if (s|^\./||o) {
my $path = "$folder/$_";
if ( -d $path ) {
$this->backup_folders_label->set_text( ++$folders );
Gtk2->main_iteration while Gtk2->events_pending;
}
else {
unless ( exists $files->{$path} ) {
$total_size += $files->{$path} = ( -s $path ) || 0;
$this->backup_changed_files_label->set_text( sprintf "%d [%sB]", scalar keys %$files,
format_bytes($total_size) );
}
$files->{$path} = 0
unless defined $files->{$path}; # wegen: -s link = 0
my @times =
map { strtime($_) } estimated_time( $this->backup_notification->{startTime}, $size, $total_size );
$this->backup_elapsed_time_label->set_text( sprintf "%s", $times[0] );
$this->backup_estimated_time_label->set_text( sprintf "%s / %s", @times[ 1, 2 ] );
$this->backup_file_label->set_text( sprintf "%s [%sB]", $path, format_bytes( $files->{$path} ) );
$this->backup_progress( $size / $total_size );
$size += $files->{$path};
}
}
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
{
#print "$1\n" if $DEBUG > 3;
$files->{$_} = -s $_ foreach get_files("$folder/$1");
$total_size += folder_size("$folder/$1");
$this->backup_changed_files_label->set_text( sprintf "%d [%sB]", scalar keys %$files, format_bytes($total_size) );
Gtk2->main_iteration while Gtk2->events_pending;
}
elsif (/^(tar: ).*?(Warning:)/o) {
print "$_\n" if $DEBUG > 3;
$this->log_add_text( $_, "\n" );
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
$SIG{$_} = 'IGNORE' foreach @SIGS;
system "cp", $process_dat, $current_dat;
unlink $process_dat;
#store date of current backup
$this->store_restore_date($archive);
#store size
my $infofile = "$store/$date.info.txt";
my $info = $this->get_backup_info( $archive, $infofile );
$info->{label} = "First Backup" unless $first;
$info->{folders} = $folders;
$info->{files} = [ keys %$files ];
$info->{size} = $total_size;
tied(%$info)->save;
}
#$this->{backup_folder} = FALSE;
$this->{tarpid} = 0;
if ( $this->backup_notification->{startTime} ) {
$this->log_add_text( sprintf __("Changed files: %d\n"), scalar keys %$files );
$this->log_add_text( sprintf __("Folders: %d\n"), $folders );
$this->log_add_text( sprintf __("Total size: %s\n"), format_bytes($total_size) );
$this->log_add_text( sprintf __("Total time: %s\n"),
strtime( localtime( time - $this->backup_notification->{startTime} ) ) );
}
$this->log_add_text( sprintf __("%s Backup done.\n"), strftime( "%F %X", localtime ) )
if $this->backup_notification->{startTime};
$SIG{$_} = sub { $this->gtk_main_quit }
foreach @SIGS;
}
sub backup_progress {
my ( $this, $fraction ) = @_;
$this->backup_progressbar->set_fraction($fraction);
$this->backup_progressbar->set_text( sprintf "%.2f %%", $fraction * 100 );
#$this->backup_notification->set_title( sprintf "Backup in progress %.2f %%", $fraction * 100 );
Gtk2->main_iteration while Gtk2->events_pending;
return;
}
sub on_cancel_backup {
my ($this) = @_;
printf "on_cancel_backup %s\n", $this->{tarpid} if $DEBUG > 3;
system "pkill", "-P", $this->{tarpid};
$this->backup_notification->{startTime} = 0;
$this->backup_progressbar->set_fraction(1);
$this->backup_progressbar->set_text( __ "Canceling Backup ..." );
#$this->{backup_folder} = FALSE;
$this->log_add_text( sprintf __("%s Backup canceled.\n"), strftime( "%F %X", localtime ) );
return 1;
}
#exclude
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
print "on_restore_button_clicked $this\n" if $DEBUG > 3;
my $selected = $this->tree_view->get_selection->get_selected;
my ( $hdate, $time ) = $this->tree_view->get_model->get( $selected, COL_HDATE, COL_TIME );
$this->restore_backup_from_label->set_text("$hdate $time");
$this->window->set_sensitive(FALSE);
$this->restore_dialog->show;
return;
}
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
my ( $this, $widget ) = @_;
$this->restore_dialog->hide;
$this->restore_notification->show;
$this->restore_backup;
$this->fill_tree;
$this->restore_notification->hide;
$this->window->set_sensitive(TRUE);
return;
}
sub restore_backup {
my ($this) = @_;
my $restore_to_folder = abs_path $this->restore_folder->get_filename;
my @files = $this->get_files_to_restore;
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
$this->restore_notification->{startTime} = time;
my $store = $this->get_store_folder;
my $utf8 = Unicode::UTF8simple->new;
my $backup = 0;
my $counter = 0;
my $numFiles = 0;
my $size = 0;
my $elapsedSize = 0;
my $totalSize = 0;
foreach my $filename (@files) {
my $infofile = "$store/" . basename( $filename, ".tar.bz2" ) . ".info.txt";
my $info = $this->get_backup_info( $filename, $infofile );
$numFiles += @{ $info->{files} };
$totalSize += $info->{size};
$this->log_add_text( sprintf "%s %d\n", $infofile, $info->{size} );
}
$this->log_add_text( sprintf "total size %d\n", $totalSize );
printf "***restore_backup to folder: %s %d\n", $restore_to_folder, $totalSize
if $DEBUG > 3;
foreach my $filename (@files) {
printf "file: %s\n", $filename if $DEBUG > 3;
##########################################################################
my $infofile = "$store/" . basename( $filename, ".tar.bz2" ) . ".info.txt";
my $info = $this->get_backup_info( $filename, $infofile );
##########################################################################
$this->log_add_text( sprintf __("restoring backup from %s\n"), basename( $filename, ".tar.bz2" ) );
$this->restore_process_backup_label->set_text( sprintf __("%d / %d"), ++$backup, scalar @files );
Gtk2->main_iteration while Gtk2->events_pending;
my $touch =
$this->restore_extract_modifiction_time->get_active
? ""
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
my ( $this, $fraction ) = @_;
$this->restore_progressbar->set_fraction($fraction);
$this->restore_progressbar->set_text( sprintf "%.2f %%", $fraction * 100 );
#$this->backup_notification->set_title( sprintf "Backup in progress %.2f %%", $fraction * 100 );
return;
}
# remove backup
#
sub on_backup_remove_button_clicked {
my ($this) = @_;
print "on_backup_remove_button_clicked $this\n" if $DEBUG > 3;
my $selected = $this->tree_view->get_selection->get_selected;
my ( $hdate, $time ) = $this->tree_view->get_model->get( $selected, COL_HDATE, COL_TIME );
$this->backup_remove_from_label->set_text("$hdate $time");
$this->window->set_sensitive(FALSE);
$this->remove_dialog->show;
return;
}
sub on_backup_remove_dialog_cancel {
my ( $this, $widget ) = @_;
print "on_restore_folder_dialog_cancel $this\n" if $DEBUG > 3;
$this->remove_dialog->hide;
$this->window->set_sensitive(TRUE);
return 1;
}
sub on_backup_remove_dialog_ok {
my ( $this, $widget ) = @_;
$this->remove_dialog->hide;
$this->remove_backup;
$this->fill_tree;
$this->window->set_sensitive(TRUE);
$this->backup_remove_button(FALSE);
return;
}
sub remove_backup {
my ($this) = @_;
my $restore_to_folder = abs_path $this->restore_folder->get_filename;
my @files = $this->get_files_to_restore;
lib/Applications/BackupAndRestore.pm view on Meta::CPAN
my ( $hdate, $date, $time, $file ) = $this->tree_view->get_model->get( $selected, COL_HDATE, COL_DATE, COL_TIME, COL_PATH );
my $folder = dirname $file;
my $store = $this->get_store_folder;
$this->log_add_text( sprintf "\n%s\n", "*" x 42 );
$this->log_add_text( sprintf __("%s removing backup from %s %s\n"), strftime( "%F %X", localtime ), $hdate, $time );
{
my $archive = "$store/$date $time.tar.bz2";
my $tardat = "$store/$date $time.dat.bz2";
my $infofile = "$folder/$date $time.info.txt";
view all matches for this distribution
view release on metacpan or search on metacpan
share/files/public/skins/default/jquery-ui-1.9.1.custom/development-bundle/jquery-1.8.2.js view on Meta::CPAN
docElem.removeChild( div );
return pass;
});
// If slice is not available, provide a backup
try {
slice.call( docElem.childNodes, 0 )[0].nodeType;
} catch ( e ) {
slice = function( i ) {
var elem,
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Archive/AndroidBackup.pm view on Meta::CPAN
our $VERSION = '1.14';
has 'file' => (
is => 'rw',
isa => 'Str',
default => 'backup.ab',
);
# defaults to invalid values to ensure
# explicit setting read_header and write_header
#
lib/Archive/AndroidBackup.pm view on Meta::CPAN
$self->$orig($tmpFHin);
map { close $_; } $inFH, $tmpFHout, $tmpFHin;
if ($self->error) {
die "Invalid Tar file within backup!\n".$self->error;
}
};
around 'write' => sub
{
lib/Archive/AndroidBackup.pm view on Meta::CPAN
prints
=head2 write($file)
writes in memory archive to $file in android backup format
=head 2 read($file)
performs validation while reading $file into memory
lib/Archive/AndroidBackup.pm view on Meta::CPAN
=head2 add_dir($dir)
emulate tar -cf dir
will correctly sort directory index the way android backup needs it
(aka the implementation peculiarity that spawned this whole project)
=head1 LICENSE
This package is free software; you can redistribute it and/or modify it
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
# Avoid Module::Build generated and utility files.
\bBuild$
\b_build/
# Avoid temp and backup files.
~$
\.old$
\#$
\b\.#
\.bak$
view all matches for this distribution
view release on metacpan or search on metacpan
xs/ppport.h view on Meta::CPAN
av_top_index|5.017009|5.003007|p
av_top_index_skip_len_mg|5.025010||Viu
av_undef|5.003007|5.003007|
av_unshift|5.003007|5.003007|
ax|5.003007|5.003007|
backup_one_GCB|5.025003||Viu
backup_one_LB|5.023007||Viu
backup_one_SB|5.021009||Viu
backup_one_WB|5.021009||Viu
bad_type_gv|5.019002||Viu
bad_type_pv|5.016000||Viu
BADVERSION|5.011004||Viu
BASEOP|5.003007||Viu
BhkDISABLE|5.013003||xV
view all matches for this distribution
view release on metacpan or search on metacpan
xs/ppport.h view on Meta::CPAN
av_top_index|5.017009|5.003007|p
av_top_index_skip_len_mg|5.025010||Viu
av_undef|5.003007|5.003007|
av_unshift|5.003007|5.003007|
ax|5.003007|5.003007|
backup_one_GCB|5.025003||Viu
backup_one_LB|5.023007||Viu
backup_one_SB|5.021009||Viu
backup_one_WB|5.021009||Viu
bad_type_gv|5.019002||Viu
bad_type_pv|5.016000||Viu
BADVERSION|5.011004||Viu
BASEOP|5.003007||Viu
BhkDISABLE|5.013003||xV
view all matches for this distribution
view release on metacpan or search on metacpan
av_tindex||5.017009|
av_top_index||5.017009|
av_undef|||
av_unshift|||
ax|||n
backup_one_LB|||
backup_one_SB|||
backup_one_WB|||
bad_type_gv|||
bad_type_pv|||
bind_match|||
block_end||5.004000|
block_gimme||5.004000|
view all matches for this distribution
view release on metacpan or search on metacpan
av_tindex||5.017009|
av_top_index||5.017009|
av_undef|||
av_unshift|||
ax|||n
backup_one_LB|||
backup_one_SB|||
backup_one_WB|||
bad_type_gv|||
bad_type_pv|||
bind_match|||
block_end||5.004000|
block_gimme||5.004000|
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Archive/SevenZip/API/ArchiveZip.pm view on Meta::CPAN
$res
}
=head2 C<< $ar->replaceMember >>
$ar->replaceMember('backup.txt', 'new-backup.txt');
Replaces the member in the archive. This is just delete then add.
I clearly don't understand the utility of this method. It clearly
does not update the content of one file with the content of another
view all matches for this distribution
view release on metacpan or search on metacpan
t/lib-Archive-Tar-Builder.t view on Meta::CPAN
my $badfile = '/dev/null/impossible';
my ( $fh, $file ) = File::Temp::tempfile();
print {$fh} "skipped\n";
print {$fh} "unwanted\n";
print {$fh} "ignored\n";
print {$fh} "backup-[!_]*_[!-]*-[!-]*-[!_]*_foo*\n";
close $fh;
eval { $archive->exclude_from_file($file); };
is( $@ => '', '$archive->exclude_from_file() does not die when given a good file' );
t/lib-Archive-Tar-Builder.t view on Meta::CPAN
'poop/skipped/meow' => 0,
'poop/skipped' => 0,
'bleh/unwanted' => 0,
'bleh/ignored/meow' => 0,
'bleh/ignored' => 0,
'/home/backup-4.5.2012_12-10-36_foo.tar.gz/cats' => 0,
'/home/backup-4.5.2012_12-10-36_foo.tar.gz' => 0,
'/home/backu-4.5.2012_12-10-36_foo.tar.gz' => 1
);
print '# Excluding: "excluded", "skipped", "unwanted", "ignored"' . "\n";
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Archive/Tar/Stream.pm view on Meta::CPAN
=head1 SYNOPSIS
Archive::Tar::Stream grew from a requirement to process very large
archives containing email backups, where the IO hit for unpacking
a tar file, repacking parts of it, and then unlinking all the files
was prohibitive.
Archive::Tar::Stream takes two file handles, one purely for reads,
one purely for writes. It does no seeking, it just unpacks
view all matches for this distribution
view release on metacpan or search on metacpan
t/Archive/File/Package.pm view on Meta::CPAN
This information is readily available when loaded at a local site.
However, it the load occurs at a remote site and the load crashes
Perl, the remote tester usually will not have this information
readily available.
Other applications include using backup alternative software
if a package does not load. For example if the package
'Compress::Zlib' did not load, an attempt may be made
to use the gzip system command.
=head1 BUGS
view all matches for this distribution
view release on metacpan or search on metacpan
unzip-6.0/History.600 view on Meta::CPAN
standard Bourne shell features, and to exit early if egrep returns
status 2 (error). [SMS]
- vms/unzip_cli.help - VMS help updates. [SMS]
- vms/unzip_def.rnh - synchronized option description with unzip_cli.help.
[Chr. Spieler]
- fileio.c: extend backup number range from 65535 to 99999 on 32-bit systems;
fixed limit detection on 16-bit systems. [Chr. Spieler]
- zipinfo.c: changed date layout of "short" (one-line) zipinfo modes to always
use ISO-style YMD order. [Chr. Spieler]
- unix/configure: added a simple compiler test to check for a working C
compiler setup. [Steven M. Schweda]
view all matches for this distribution
view release on metacpan or search on metacpan
private/MakeUtil.pm view on Meta::CPAN
use File::Copy ;
return if -d $file ;
my $backup = $file . ($^O eq 'VMS') ? "_bak" : ".bak";
copy($file, $backup)
or die "Cannot copy $file to $backup: $!";
my @keep = ();
{
open F, "<$file"
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Archive/Zip/Archive.pm view on Meta::CPAN
return _error("no filename in overwriteAs()") unless defined($zipName);
my ($fh, $tempName) = Archive::Zip::tempFile();
return _error("Can't open temp file", $!) unless $fh;
(my $backupName = $zipName) =~ s{(\.[^.]*)?$}{.zbk};
my $status = $self->writeToFileHandle($fh);
$fh->close();
$fh = undef;
lib/Archive/Zip/Archive.pm view on Meta::CPAN
}
my $err;
# rename the zip
if (-f $zipName && !rename($zipName, $backupName)) {
$err = $!;
unlink($tempName);
return _error("Can't rename $zipName as $backupName", $err);
}
# move the temp to the original name (possibly copying)
unless (File::Copy::move($tempName, $zipName)
|| File::Copy::copy($tempName, $zipName)) {
$err = $!;
rename($backupName, $zipName);
unlink($tempName);
return _error("Can't move $tempName to $zipName", $err);
}
# unlink the backup
if (-f $backupName && !unlink($backupName)) {
$err = $!;
return _error("Can't unlink $backupName", $err);
}
return AZ_OK;
}
view all matches for this distribution
view release on metacpan or search on metacpan
av_top_index|5.017009|5.003007|p
av_top_index_skip_len_mg|5.025010||Viu
av_undef|5.003007|5.003007|
av_unshift|5.003007|5.003007|
ax|5.003007|5.003007|
backup_one_GCB|5.025003||Viu
backup_one_LB|5.023007||Viu
backup_one_SB|5.021009||Viu
backup_one_WB|5.021009||Viu
bad_type_gv|5.019002||Viu
bad_type_pv|5.016000||Viu
BADVERSION|5.011004||Viu
BASEOP|5.003007||Viu
BhkDISABLE|5.013003||xV
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bBuild.bat$
\bBuild.COM$
\bBUILD.COM$
\bbuild.com$
# Avoid temp and backup files.
~$
\.old$
\#$
\b\.#
\.bak$
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bBuild.bat$
\bBuild.COM$
\bBUILD.COM$
\bbuild.com$
# Avoid temp and backup files.
~$
\.old$
\#$
\b\.#
\.bak$
view all matches for this distribution
view release on metacpan or search on metacpan
=cut
# Emacs Local Variables:
# Emacs mode: perl
# Emacs backup-by-copying-when-linked: t
# Emacs End:
view all matches for this distribution
view release on metacpan or search on metacpan
lib/ArrayData/Lingua/Word/EN/Enable.pm view on Meta::CPAN
backtalks
backtrack
backtracked
backtracking
backtracks
backup
backups
backward
backwardly
backwardness
backwardnesses
backwards
view all matches for this distribution
view release on metacpan or search on metacpan
lib/ArrayData/Word/EN/Enable.pm view on Meta::CPAN
backtalks
backtrack
backtracked
backtracking
backtracks
backup
backups
backward
backwardly
backwardness
backwardnesses
backwards
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Articulate/Storage/DBIC/Simple.pm view on Meta::CPAN
=head3 empty_all_content
$storage->empty_all_content;
Removes all content. This is totally irreversible, unless you took a
backup!
=cut
sub empty_all_content {
my $self = shift;
view all matches for this distribution