view release on metacpan or search on metacpan
server cache1 10.10.118.41:80 maxconn 400 check inter 2000 fall 8 weight 3
server cache2 10.10.118.43:80 maxconn 400 check inter 2000 fall 8 weight 2
server cache4 10.10.118.44:80 maxconn 400 check inter 2000 fall 8 weight 2
server cache5 10.10.118.46:80 maxconn 400 check inter 2000 fall 8 weight 2
server bck 127.0.0.1:8881 check backup
####################
# TESTTIJD frontend
####################
# listen testbackend 10.10.17.39:80
## capture request header X-Forwarded-For len 15
# capture response header X-Serverside-Cache len 30
#
# server testcache2 10.10.118.3:1080 maxconn 100 check inter 2000 fall 3
# server testcache4 10.10.118.4:1080 maxconn 100 check inter 2000 fall 3
# server bck 127.0.0.1:8881 check backup
#
#####################
# TIJD backend
####################
listen backend 10.10.118.65:80
# server www17 10.10.118.72:80 maxconn 100 check inter 2000 fall 3
server www18 10.10.118.73:80 maxconn 100 check inter 2000 fall 3
server www19 10.10.118.74:80 maxconn 100 check inter 2000 fall 3
server www20 10.10.118.75:80 maxconn 100 check inter 2000 fall 3
server bck 127.0.0.1:8881 check backup
####################
# TESTTIJD backend
####################
#
## capture request header X-Forwarded-For len 15
# capture response header Cache-Control len 15
#
# server www20 10.10.118.75:80 maxconn 100 check inter 2000 fall 3
# server bck 127.0.0.1:8881 check backup
#
#
view all matches for this distribution
view release on metacpan or search on metacpan
t/checker.t view on Meta::CPAN
-
# ----------------------------------------------------------------
name: client logs
hosts:
- ds16-r50
path: /data1/delogs/backup/%YYYY%/%MM%/%DD%/clientlog_%loghost=\w+-r\d+%.%YYYY%-%M%-%D%-%hour=\d+%-%=\d+%
remove_after: 90 days
format: JSON
valid_from: 2008-03-03
valid_to: 2008-09-30
# ----------------------------------------------------------------
view all matches for this distribution
view release on metacpan or search on metacpan
## add this block to the crontab object
$ct->last($block);
## make another block using Block methods
$block = new Config::Crontab::Block;
$block->last( new Config::Crontab::Comment( -data => '## do backups' ) );
$block->last( new Config::Crontab::Env( -name => 'MAILTO', -value => 'bob' ) );
$block->last( new Config::Crontab::Event( -minute => 40,
-hour => 3,
-command => '/sbin/backup --partition=all' ) );
## add this block to crontab file
$ct->last($block);
## write out crontab file
$ct->write;
## changing an existing crontab
###############################
my $ct = new Config::Crontab; $ct->read;
## comment out the command that runs our backup
$_->active(0) for $ct->select(-command_re => '/sbin/backup');
## save our crontab again
$ct->write;
###############################
$c->remove($c->block($c->select(-command_re => "/bin/unwanted"))); \
$c->write'
=item *
reschedule the backups to run just Monday thru Friday:
perl -MConfig::Crontab -e '$c=new Config::Crontab; $c->read; \
$_->dow("1-5") for $c->select(-command_re => "/sbin/backup"); $c->write'
=item *
reschedule the backups to run weekends too:
perl -MConfig::Crontab -e '$c=new Config::Crontab; $c->read; \
$_->dow("*") for $c->select(-command_re => "/sbin/backup"); $c->write'
=item *
change all 'MAILTO' environment settings in this crontab to 'joe@schmoe.org':
$ct = new Config::Crontab;
$ct->read;
## reads the crontab from a file
$ct = new Config::Crontab;
$ct->read( -file => '/var/cronbackups/cron1' );
## same thing as above
$ct = new Config::Crontab( -file => '/var/cronbackups/cron1' );
$ct->read; ## '-file' attribute already set
## ditto using 'file' method
$ct = new Config::Crontab;
$ct->file('/var/cronbackups/cron1');
$ct->read;
## ditto, using a pipe
$ct = new Config::Crontab;
$ct->file('cat /var/cronbackups/cron1|');
$ct->read;
## ditto, using 'read' method
$ct = new Config::Crontab;
$ct->read( -file => 'cat /var/cronbackups/cron1|');
## now fortified with error-checking
$ct->read
or do {
warn $ct->error;
## get all lines in the crontab
@lines => $ct->select;
## get a line: note list context, also, no 'type' specified
($line) = $ct->select( -data_re => 'start backups' );
=head2 select_blocks([%criteria])
Returns a list of crontab Block objects that match the specified
criteria. If no criteria are specified, B<select_blocks> behaves just
return;
};
## set 'file' and write simultaneously (future calls to read and
## write will use this filename)
$ct->write('/var/mycronbackups/cron1.txt');
## same thing
$ct->file('/var/mycronbackups/cron1.txt');
$ct->write;
=head2 remove_tab([file])
Removes a crontab. If B<file> is set, that file will be unlinked. If
Line Block Block Line Entry
1 1 1 ## grind disks
2 1 2 5 5 * * * /bin/grind
3 1 3
4 2 1 ## backup reminder to joe
5 2 2 MAILTO=joe
6 2 3 5 0 * * Fri /bin/backup
7 2 4
8 3 1 ## meeting reminder to bob
9 3 2 MAILTO=bob
10 3 3 30 9 * * Wed /bin/meeting
Line Block Block Line Entry
1 1 1 ## grind disks
2 2 1 5 5 * * * /bin/grind
3 3 1
4 4 1 ## backup reminder to joe
5 5 1 MAILTO=joe
6 6 1 5 0 * * Fri /bin/backup
7 7 1
8 8 1 ## meeting reminder to bob
9 9 1 MAILTO=bob
10 10 1 30 9 * * Wed /bin/meeting
Line Block Block Line Entry
1 1 1 ## grind disks
2 1 2 5 5 * * * /bin/grind
3 1 3
4 1 4 ## backup reminder to joe
5 1 5 MAILTO=joe
6 1 6 5 0 * * Fri /bin/backup
7 1 7
8 1 8 ## meeting reminder to bob
9 1 9 MAILTO=bob
10 1 10 30 9 * * Wed /bin/meeting
Examples:
## create an empty block object & populate it with the data method
$block = new Config::Crontab::Block;
$block->data( <<_BLOCK_ ); ## via a 'here' document
## 2:05a Friday backup
MAILTO=sysadmin@mydomain.ext
5 2 * * Fri /sbin/backup /dev/da0s1f
_BLOCK_
## create a block in the constructor (also via 'here' document)
$block = new Config::Crontab::Block( -data => <<_BLOCK_ );
## 2:05a Friday backup
MAILTO=sysadmin@mydomain.ext
5 2 * * Fri /sbin/backup /dev/da0s1f
_BLOCK_
## create an array of crontab objects
my @lines = ( new Config::Crontab::Comment(-data => '## run bar'),
new Config::Crontab::Event(-data => '5 8 * * * /foo/bar') );
Get block data as a list of B<Config::Crontab::*> objects. Set block
data using a list reference.
Example:
$block->lines( [ new Config::Crontab::Comment( -data => "## run backup" ),
new Config::Crontab::Event( -data => "5 4 * * 1-5 /sbin/backup" ) ] );
## sorta like $block->dump
for my $obj ( $block->lines ) {
print $obj->dump . "\n";
}
## simple case: you need to get a handle on these objects first
$block->remove( $obj1, $obj2, $obj3 );
## more complex: remove an event from a block by searching
for my $event ( $block->select( -type => 'event') ) {
next unless $event->command =~ /\bbackup\b/; ## look for backup command
$block->remove($event); last; ## and remove it
}
=head2 replace($oldobj, $newobj)
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/HAProxy.pm view on Meta::CPAN
}
}
return 1 if $dry_run;
my $sb = stat($self->filename);
$self->backup;
rename($tempfile, $self->filename)
or croak "can't rename $tempfile to ".$self->tempfile.": $!";
# This will succeed: we've created the file, so we're owning it.
chmod $sb->mode & 0777, $self->filename;
# This will fail unless we are root, let it be so.
lib/Config/HAProxy.pm view on Meta::CPAN
$self->tree->clear_dirty;
return 1;
}
sub backup_name {
my $self = shift;
$self->filename . '~'
}
sub backup {
my $self = shift;
my $backup = $self->backup_name;
if (-f $backup) {
unlink $backup
or croak "can't unlink $backup: $!"
}
rename $self->filename, $self->backup_name
or croak "can't rename :"
. $self->filename
. " to "
. $self->backup_name
. ": $!";
}
1;
__END__
lib/Config/HAProxy.pm view on Meta::CPAN
$cfg->save(%hash);
$cfg->write($file_or_handle, %hash);
$cfg->backup;
$name = $self->backup_name;
$cfg->reset;
$cfg->push($node);
$node = $cfg->pop;
$node = $cfg->tos;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/INI/RefVars.pm view on Meta::CPAN
$self->{+SRC_NAME} = $args{src_name} if exists($args{src_name});
my ( $cleanup, $src, $tocopy_section, $tocopy_vars, $not_tocopy) =
@args{qw(cleanup src tocopy_section tocopy_vars not_tocopy)};
croak("'src': missing mandatory argument") if !defined($src);
my $backup = $self->{+BACKUP} //= {};
if (defined($tocopy_section)) {
$backup->{tocopy_section} = $self->{+TOCOPY_SECTION};
$self->{+TOCOPY_SECTION} = $tocopy_section;
}
else {
$tocopy_section = $self->{+TOCOPY_SECTION};
}
$self->{+CURR_TOCP_SECTION} = $tocopy_section;
$Globals{'=TO_CP_SEC'} = $tocopy_section;
if ($tocopy_vars) {
$backup->{tocopy_vars} = $self->{+TOCOPY_VARS};
$self->$_check_tocopy_vars($tocopy_vars, 1);
}
if ($not_tocopy) {
$backup->{not_tocopy} = $self->{+NOT_TOCOPY};
$self->$_check_not_tocopy($not_tocopy, 1)
}
$self->{+SECTIONS} = [];
$self->{+SECTIONS_H} = {};
$self->{+EXPANDED} = {};
lib/Config/INI/RefVars.pm view on Meta::CPAN
$sec_vars->{'='} = $section;
@{$sec_vars}{keys(%$global_vars)} = values(%$global_vars);
}
}
}
$self->{+TOCOPY_SECTION} = $backup->{tocopy_section} if exists($backup->{tocopy_section});
$self->{+TOCOPY_VARS} = $backup->{tocopy_vars} if exists($backup->{tocopy_vars});
$self->{+NOT_TOCOPY} = $backup->{not_tocopy} if exists($backup->{not_tocopy});
$backup = {};
return $self;
}
sub current_tocopy_section {$_[0]->{+CURR_TOCP_SECTION}}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Inetd.pm view on Meta::CPAN
The inetd configuration file is tied as instance data with newlines
preserved; it may be accessed via C<< $inetd->config >>.
=head1 BUGS & CAVEATS
It is strongly advised that the configuration file is B<backuped> first
if one is intending to work with the default (i.e., system-wide)
configuration file and not a customized one.
Accessing C<< @{$inetd->{CONF}} >> is deprecated and superseded by
C<< $inetd->config >>.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/IniFiles.pm view on Meta::CPAN
use File::Basename qw( dirname );
use File::Temp qw/ tempfile /;
@Config::IniFiles::errors = ();
# $Header: /home/shlomi/progs/perl/cpan/Config/IniFiles/config-inifiles-cvsbackup/config-inifiles/IniFiles.pm,v 2.41 2003-12-08 10:50:56 domq Exp $
sub _nocase
{
my $self = shift;
lib/Config/IniFiles.pm view on Meta::CPAN
=item *
No locking is done by [Re]WriteConfig. When writing servers, take
care that only the parent ever calls this, and consider making your
own backup.
=back
=head1 Data Structure
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Model/Backend/Augeas.pm view on Meta::CPAN
Use C<augeas> (or C<Augeas>)in this case.
=item save
Either C<backup> or C<newfile>. See L<Config::Augeas/Constructor> for
details.
=item file
Name of the configuration file.
lib/Config/Model/Backend/Augeas.pm view on Meta::CPAN
For instance:
read_config => {
backend => 'augeas' ,
save => 'backup',
file => '/etc/ssh/sshd_config',
# declare "seq" Augeas elements
sequential_lens => [/AcceptEnv AllowGroups/],
},
view all matches for this distribution
view release on metacpan or search on metacpan
t/backend_yaml.t view on Meta::CPAN
my $written = $yaml_file->slurp;
unlike($written, qr/record/, "check that list element name is not written");
};
subtest 'test automatic file backup' => sub {
my $i_hosts = $model->instance(
instance_name => 'hosts_inst_backup',
root_class_name => 'Hosts',
root_dir => $wr_root->stringify,
model_file => 'test_yaml_model.pl',
backup => ''
);
ok( $i_hosts, "Created instance" );
my $i_root = $i_hosts->config_root;
t/backend_yaml.t view on Meta::CPAN
$i_root->load("record:2 ipaddr=192.168.0.3 canonical=stuff");
$i_hosts->write_back;
ok( 1, "yaml write back done" );
my $backup = path($yaml_file.'.old');
ok ($backup->exists, "backup file was written");
# restore backup to undo the load done 4 lines ago
# so the next subtest tests that the backup content is right
$backup->move($yaml_file);
};
subtest 'another instance to read the yaml that was just written' => sub {
my $i2_hosts = $model->instance(
instance_name => 'hosts_inst2',
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Model/models/Sshd/MatchElement.pl view on Meta::CPAN
B<without-password>), password and keyboard-interactive
authentication are disabled for root.If this option
is set to B<forced-commands-only>, root login with
public key authentication will be allowed, but only if the
I<command> option has been specified (which may be
useful for taking remote backups even if root login is
normally not allowed). All other authentication methods are
disabled for root.If this option
is set to B<no>, root is not allowed to log in.',
'type' => 'leaf',
'value_type' => 'enum'
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Model/models/Systemd/Section/Timer.pl view on Meta::CPAN
congestion on a remote service, from a fleet of similarly-configured clients. Unlike
C<RandomizedDelaySec>, this setting applies its offset with no regard to manager
startup time. This maintains the periodicity of configured C<OnCalendar> events
across manager restarts.
For example, let\'s say you\'re running a backup service and have a fleet of laptops that wish
to make backups weekly. To distribute load on the backup service, each laptop should randomly pick
a weekday to upload its backups. This could be achieved by setting C<OnCalendar> to
C<weekly>, and then configuring a C<RandomizedDelaySec> of
C<5 days> with C<FixedRandomDelay> enabled. Let\'s say that some
laptop randomly chooses a delay of 4 days. If this laptop is restarted more often than that, then the
timer will never fire: on each fresh boot, the 4 day delay is restarted and will not be finished by
the time of the next shutdown. Instead, you should use C<RandomizedOffsetSec>, which
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Model/Xorg.pm view on Meta::CPAN
configuration of your favourite X server.
Installing Config::Model::CursesUI is recommended as you'll have a
more user friendly curses based user interface.
Once this module is installed, you can run (as root, but please backup
/etc/X11/xorg.conf before):
# config-edit -model Xorg
You may want to try it safely first by writing the resulting xorg.conf
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Model/AnyId.pm view on Meta::CPAN
around BUILDARGS => sub {
my $orig = shift;
my $class = shift;
my %args = @_;
my %h = map { ( $_ => $args{$_} ); } grep { defined $args{$_} } @allowed_warp_params;
return $class->$orig( backup => dclone( \%h ), @_ );
};
has [qw/backup cargo/] => ( is => 'ro', isa => 'HashRef', required => 1 );
has warp => ( is => 'ro', isa => 'Maybe[HashRef]' );
has [qw/morph/] => ( is => 'ro', isa => 'Bool', default => 0 );
has content_warning_list => ( is => 'rw', isa => 'ArrayRef', default => sub { []; } );
has [qw/cargo_class max_index index_class index_type/] =>
( is => 'rw', isa => 'Maybe[Str]' );
lib/Config/Model/AnyId.pm view on Meta::CPAN
# feature of the Id object.
sub set_properties ($self, @args) {
# mega cleanup
for ( @allowed_warp_params ) { delete $self->{$_}; }
my %args = ( %{ $self->{backup} }, @args );
# these are handled by Node or Warper
for ( qw/level/ ) { delete $args{$_}; }
$logger->trace( $self->name, " set_properties called with @args" );
lib/Config/Model/AnyId.pm view on Meta::CPAN
for (qw/index_class index_type morph ordered/) {
$self->{$_} = delete $args{$_} if defined $args{$_};
}
$self->{backup} = dclone( \%args );
$self->set_properties(%args) if defined $self->{index_type};
if ( defined $warp_info ) {
$self->{warper} = Config::Model::Warper->new(
view all matches for this distribution
view release on metacpan or search on metacpan
bin/myconfig-demo.pl view on Meta::CPAN
$conftemplate->{global}->{tar} = { type => 'single', match => '.+' };
$conftemplate->{global}->{ssh} = { type => 'single', match => '.+' };
$conftemplate->{global}->{rsync} = { type => 'single', match => '.+' };
$conftemplate->{global}->{debuglevel} = { type => 'single', match => '^\d$' };
$conftemplate->{backup}->{hostname} = { type => 'single', match => '^[a-zA-Z0-9\.]+$' };
$conftemplate->{backup}->{backupschedule} = { type => 'list', match => '^[Mon]|[Tue]|[Wed]|[Thu]|[Fri]|[Sat]|[Sun]$' };
$conftemplate->{backup}->{archiveschedule} = { type => 'list', match => '^[Mon]|[Tue]|[Wed]|[Thu]|[Fri]|[Sat]|[Sun]$' };
$conftemplate->{backup}->{archivemaxdays} = { type => 'list', match => '^\d+$' };
$conftemplate->{backup}->{add} = { type => 'list', match => '.+' };
$conftemplate->{backup}->{excl} = { type => 'list', match => '.+' };
$myconfig->SetupDirectives($conftemplate);
my $config = $myconfig->ReadConfig();
bin/myconfig-demo.pl view on Meta::CPAN
my $global_value = $myconfig->GetGlobalValue('rsync');
print "Global value rsync: $global_value\n";
print "\n* Get some directive values\n";
my @backup_identifiers = $myconfig->GetDirectiveIdentifiers('backup');
foreach my $identifier (@backup_identifiers)
{
my $backup_value_array_ref = $myconfig->GetDirectiveVaue('backup',$identifier,'backupschedule');
foreach my $val (@$backup_value_array_ref)
{
print "Backup directive with identifier $identifier, parameter archiveschedule has value $val\n";
}
}
bin/myconfig-demo.pl view on Meta::CPAN
print " - Changing debuglevel to /has/been/changed: ";
$error = $myconfig->SetGlobalValue('debuglevel','ultra-maximum');
$error ? print "$error\n" : print "ok\n";
print " - Inserting new backup directive with the name new-directive: ";
$error = $myconfig->SetDirectiveValue('backup','new-directive','hostname','somenewhostname.com');
$error ? print "$error\n" : print "ok\n";
print " - Adding new archiveschedule day for directive server-system: ";
$error = $myconfig->SetDirectiveValue('backup','server-system','archiveschedule','Thu');
$error ? print "$error\n" : print "ok\n";
my $file = 'new_demo.cfg';
print "\n* Write the modified configuration file to $file\n";
$myconfig->WriteConfig('Server Backup Configuration File',$file);
view all matches for this distribution
view release on metacpan or search on metacpan
t/waltz.t.conf view on Meta::CPAN
#######################################################################
@section repository backup
@boolean worry ignore verbose noop purge
@variable expunge retain maxdel keep linknumber rsync title PATH RSYNC_RSH
@array purge tell errors options directory okcode
#######################################################################
# Configuration file for backup.
# Environment
PATH=/usr/bin:/bin
RSYNC_RSH="ssh -F /dev/null -q -x "
tell fred@domain.com
# Specify the host and directory details.
repository server:/var/backup
{
RSYNC_RSH .= "-p 222 -i .ssh/id_dsa"
linknum 4
expunge 1w
t/waltz.t.conf view on Meta::CPAN
{
RSYNC_RSH .= " -x"
options --bwlimit=1000
dir /etc /root
backup workstation { }
}
backup workstation2
{
options --bwlimit=100
options --exclude=goodlist.db
options --exclude=Cache
t/waltz.t.conf view on Meta::CPAN
dir /usr/local
dir /var/mysql
}
{
backup waltz@pc
{
!worry
dir ":backup"
dir ":C/epson"
options --password-file=.ssh/.pwd
okcode 23 # some files could not be transferred
}
}
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bMakeMaker-\d
\bpm_to_blib\.ts$
\bpm_to_blib$
\bblibdirs\.ts$ # 6.18 through 6.25 generated this
# 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
\bMakeMaker-\d
\bpm_to_blib\.ts$
\bpm_to_blib$
\bblibdirs\.ts$ # 6.18 through 6.25 generated this
# 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$
# Avoid Devel::Cover generated files
\bcover_db
# Avoid temp and backup files.
~$
\#$
\.#
\.bak$
\.old$
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bBuild.bat$
# Avoid Devel::Cover generated files
\bcover_db
# Avoid temp and backup files.
~$
\#$
\.#
\.bak$
\.old$
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/HAProxy.pm view on Meta::CPAN
$cfg->save(%hash);
$cfg->write($file_or_handle, %hash);
$cfg->backup;
$name = $self->backup_name;
$cfg->reset;
$cfg->push($node);
$node = $cfg->pop;
$node = $cfg->tos;
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bBuild.bat$
# Avoid Devel::Cover generated files
\bcover_db
# Avoid temp and backup files.
~$
\#$
\.#
\.bak$
\.old$
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
\bBuild.bat$
# Avoid Devel::Cover generated files
\bcover_db
# Avoid temp and backup files.
~$
\#$
\.#
\.bak$
\.old$
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Trivial/Storable.pm view on Meta::CPAN
}
if ( -e $file ) {
croak "ERROR: Insufficient permissions to write to: $file"
unless ( -w $file );
rename $file, $file . $self->{_backup_char}
or croak "ERROR: Unable to rename $file.";
}
my $settings = $args{'configuration'} || $self->{_configuration};
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Config/Trivial.pm view on Meta::CPAN
my $object = bless {
_config_file => $_file, # The Config file, default is caller
_self => 1, # Set Self Read
_error_message => q{}, # Error Messages
_configuration => {}, # Where the configuration data goes
_backup_char => q{~}, # Backup marker
_separator => q{ }, # Separator
_multi_file => 0, # Multi file mode
_debug => $args{debug} || 0, # Debugging (verbose) mode
_strict => $args{strict} || 0, # Strict mode
_no_check => $args{no_check} || 0, # Skip filesystem checks
lib/Config/Trivial.pm view on Meta::CPAN
}
if ( -e $file ) {
croak "ERROR: Insufficient permissions to write to: $file"
unless ( -w $file );
rename $file, $file . $self->{_backup_char}
or croak "ERROR: Unable to rename $file.";
}
open my $config, '>', $file
or croak "ERROR: Unable to write configuration file: $file";
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/Config/Writer.pm view on Meta::CPAN
safe temporary configuration file creation, ownership and
access mode setting;
=item *
creation of backup file(-s) of the target configuration file;
=item *
automatic cleanup of outdated or surplus backup files.
=back
Now you are able to restore configuration file even if you
forgot to create a backup file before editing it!
=head1 CAVEATS
=over 4
lib/Config/Writer.pm view on Meta::CPAN
relative path part. Path part handling is described in B<workdir> option description
below.
New temporary file will be created on success and all write operations will be
performed on this temporary file. On `close` method invocation existing configuration
file can be moved to a backup file (see descrition of B<overwrite> option below) and
temporary file is renamed in place of the original configuration file.
=over 4
=item B<FILENAME>
lib/Config/Writer.pm view on Meta::CPAN
Configuration file to be created or replaced name. Can contain either absolute or
relative path part. Path part handling is described in B<workdir> option description below.
New temporary file will be created on success and all write operations will be performed
on this temporary file. On B<close()> method invocation existing configuration file can
be moved to a backup file (see descrition of B<overwrite> option below) and temporary file
is renamed in place of the original configuration file.
=item B<format> = STRING
Configuration file format. Currently unused.
lib/Config/Writer.pm view on Meta::CPAN
Work directory existence check is performed. If work directory does not exist, `undef`
is returned and error flag is set!
=item B<retain> = INTEGER
Quantity of configuration file backups to retain. Default is 0 - do not retain any.
=item B<overwrite> = BOOLEAN
Existing backup file will be either overwritten if the flag is set to true
(overwrite = 1) or stayed untouched (overwrite = 0). E. g. if you choose to
store single backup per day, you'll get either the latest configuration version
before it being updated, or the configuration you've got at the beginning of the
day.
Default is 0.
=item B<extension> = STRING
Configuration file backup extension format as described in POSIX strftime function
documentation. The new extension will replace original one, so the backup files
should not be loaded even in case wildcards (e. g. 'B<*.conf>') are used to include
configuration from a several files. Existing backup files will either stay untouched
or overwritten depending on B<overwrite> flag value.
Default is '-%Y-%m-%d'.
=item B<owner> = STRING
lib/Config/Writer.pm view on Meta::CPAN
closes temporary configuration file;
=item *
tries to rename target configuration file to a backup file (if `retain`
option is non-zero);
=item *
tries to remove surplus (oldest) backup files (if `retain` option is non-zero);
=item *
tries to rename temporary configuration file to a target name.
lib/Config/Writer.pm view on Meta::CPAN
=cut #}}}
if (fileno $self->{'fh'} != -1 and fileno $self->{'fh'} != fileno STDOUT) {
undef $self->{'fh'};
unless ($self->{'retain'} == 0) {
my $backup = $self->{'workdir'} . '/' . $self->{'filename'} . POSIX::strftime($self->{'extension'}, localtime time);
if (! -f $backup or isTrue $self->{'overwrite'}) {
rename($self->{'fullname'}, $backup) or $self->{'error'} = boolean::true;
}
opendir(DH, $self->{'workdir'}) or $self->{'error'} = boolean::true;
my $tmpfiles = {};
foreach my $filename (readdir DH) {
next if $filename !~ /^$self->{'filename'}(?!$|\.[_\w]{6}$)/;
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
.perltidyrc view on Meta::CPAN
##################### Official Melody perltidyrc file #####################
##### HOW TO USE: After installing perltidy, cd to your Melody root
##### directory. To run on a single file, creating a backup at FILE.bak:
#####
##### perltidy PATH/TO/FILE
#####
##### You can use shell glob characters to run on multiple files:
#####
.perltidyrc view on Meta::CPAN
# Same as above. Will create file.ERR
--no-standard-error-output
# We use version control and can reset changes easily, so just rewrite the
# file instead of creating a backup (.bak) for each file
--backup-and-modify-in-place
-backup-file-extension=tdybak
# Causes warnings to be treated like errors (think 'use strict')
--warning-output
#####
.perltidyrc view on Meta::CPAN
# -square-bracket-vertical-tightness-closing=0
# -square-bracket-vertical-tightness=0
# -static-block-comments
# -trim-qw
# -format=tidy
# -backup-file-extension=bak
# -format-skipping
# -pod2html
# -html-table-of-contents
# -html-entities
# -perl-syntax-check-flags=-c -T
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
dist.ini
# Temp, old and emacs backup files.
~$
\.old$
^#.*#$
^\.#
view all matches for this distribution