use Getopt::Long;
use Cwd qw(chdir fastgetcwd);
use Errno qw(ENOENT);
-use File::Remove qw(remove);
use Carp qw(confess cluck croak carp);
+BEGIN {
+ if (!eval q{use File::Remove qw(remove);}) {{
+ sub main::remove
+ {
+ my $r="";
+ if ("SCALAR" eq ref $_[0]) {
+ $r="-r" if ${$_[0]};
+ shift;
+ }
+ my $cmd="rm -f $r ".join(" ",map({s/'/'\\''/g;"'$_'";} @_));
+ my $err=system($cmd) and confess("$cmd: $cmd");
+ return @_;
+ }
+ }}
+}
use constant ENTRIES =>"CVS/Entries";
use constant CVSIGNORE=>".cvsignore";
{
my($filename)=@_;
+ chmod 0600,$filename or do {
+ mayfatal "File \"$_\" cannot be chmod(2)ed" if !$!{ENOENT};
+ };
# '\1' for '-r':
- if (!remove \1,$filename) {
+ remove \1,$filename or do {
mayfatal "File \"$_\" cannot be removed" if !$!{ENOENT};
- }
+ };
}
sub localactionrootset