App-DistSync
view release on metacpan or search on metacpan
lib/App/DistSync.pm view on Meta::CPAN
# Set TimeOut
my $to = _expire($props{timeout} // TIMEOUT);
croak("Can't use specified timeout") unless $to =~ /^[0-9]{1,11}$/;
# Instance
my $self = bless({%props}, $class);
# User Agent
my $ua = $self->{ua} = LWP::UserAgent->new();
$ua->timeout($to) if $to;
$ua->agent(sprintf("%s/%s", __PACKAGE__, $VERSION));
$ua->env_proxy;
$ua->proxy(['http', 'https'] => $props{proxy}) if $props{proxy};
$ua->ssl_opts(
verify_hostname => 0,
SSL_verify_mode => 0x00
) if $props{insecure};
return $self;
}
sub verbose { !!shift->{verbose} }
sub dir { shift->{dir} }
sub pid { shift->{pid} }
sub ua { shift->{ua} }
sub init { # Initialization
my $self = shift;
my $stamp = scalar(localtime($self->{started}));
my $status = 1;
# MANIFEST.SKIP
printf "%s... ", $self->{file_maniskip};
if (touch($self->{file_maniskip}) && (-e $self->{file_maniskip}) && -z $self->{file_maniskip}) {
my @content = (
"# Generated on $stamp",
"# List of files that should not be synchronized",
"#",
"# Format of file:",
"#",
"# dir1/dir2/.../dirn/foo.txt any comment, for example blah-blah-blah",
"# bar.txt any comment, for example blah-blah-blah",
"# baz.txt",
"# 'spaced dir1/foo.txt' any comment, for example blah-blah-blah",
"# 'spaced dir1/foo.txt' any comment, for example blah-blah-blah",
"# !!perl/regexp (?i-xsm:\\.bak\$) avoid all bak files",
"#",
"# See also MANIFEST.SKIP file of ExtUtils::Manifest v1.68 or later",
"#",
"",
"# Avoid version control files.",
"!!perl/regexp (?i-xsm:\\bRCS\\b)",
"!!perl/regexp (?i-xsm:\\bCVS\\b)",
"!!perl/regexp (?i-xsm:\\bSCCS\\b)",
"!!perl/regexp (?i-xsm:,v\$)",
"!!perl/regexp (?i-xsm:\\B\\.svn\\b)",
"!!perl/regexp (?i-xsm:\\B\\.git\\b)",
"!!perl/regexp (?i-xsm:\\B\\.gitignore\\b)",
"!!perl/regexp (?i-xsm:\\b_darcs\\b)",
"!!perl/regexp (?i-xsm:\\B\\.cvsignore\$)",
"",
"# Avoid temp and backup files.",
"!!perl/regexp (?i-xsm:~\$)",
"!!perl/regexp (?i-xsm:\\.(old|bak|back|tmp|temp|rej)\$)",
"!!perl/regexp (?i-xsm:\\#\$)",
"!!perl/regexp (?i-xsm:\\b\\.#)",
"!!perl/regexp (?i-xsm:\\.#)",
"!!perl/regexp (?i-xsm:\\..*\\.sw.?\$)",
"",
"# Avoid prove files",
"!!perl/regexp (?i-xsm:\\B\\.prove\$)",
"",
"# Avoid MYMETA files",
"!!perl/regexp (?i-xsm:^MYMETA\\.)",
"",
"# Avoid Apache and building files",
"!!perl/regexp (?i-xsm:\\B\\.ht.+\$)",
"!!perl/regexp (?i-xsm:\\B\\.exists\$)",
"",
"# Skip TEMP files",
"!!perl/regexp (?i-xsm:\\.TEMP\\-\\d+\$)",
"\n",
);
if (spew($self->{file_maniskip}, join("\n", @content))) {
say "ok";
} else {
say "fail";
$status = 0;
}
} else {
say "skip";
}
# MANIFEST.DEL
printf "%s... ", $self->{file_manidel};
if (touch($self->{file_manidel}) && (-e $self->{file_manidel}) && -z $self->{file_manidel}) {
my @content = (
"# Generated on $stamp",
"# List of files that must be deleted. By default, the files will be",
"# deleted after 3 days.",
"#",
"# Format of file:",
"#",
"# dir1/dir2/.../dirn/foo.txt 1d",
"# bar.txt 2M",
"# baz.txt",
"# 'spaced dir1/foo.txt' 1m",
"# 'spaced dir1/foo.txt' 2y",
"#",
"\n",
);
if (spew($self->{file_manidel}, join("\n", @content))) {
say "ok";
} else {
say "fail";
$status = 0;
}
} else {
say "skip";
}
# MIRRORS
( run in 1.148 second using v1.01-cache-2.11-cpan-df04353d9ac )