freebsd_amp_hwpstate/gnu/usr.bin/perl/eg/van/vanish

66 lines
1.3 KiB
Perl

#!/usr/bin/perl
# $Header: /home/cvs/386BSD/ports/lang/perl/eg/van/vanish,v 1.1.1.1 1993/08/23 21:29:45 nate Exp $
sub it {
if ($olddir ne '.') {
chop($pwd = `pwd`) if $pwd eq '';
(chdir $olddir) || die "Directory $olddir is not accesible";
}
if (!-d .deleted) {
print `mkdir .deleted; chmod 775 .deleted`;
die "You can't remove files from $olddir" if $?;
}
$filelist =~ s/ $//;
$filelist =~ s/#/\\#/g;
if ($filelist !~ /^[ \t]*$/) {
open(lastcmd,'>.deleted/.lastcmd');
print lastcmd $filelist,"\n";
close(lastcmd);
print `/bin/mv $startfiles$filelist .deleted$force`;
}
if ($olddir ne '.') {
(chdir $pwd) || die "Can't get back to original directory $pwd: $!\n";
}
}
while ($ARGV[0] =~ /^-/) {
$_ = shift;
/^-f/ && ($force = ' >/dev/null 2>&1');
/^-i/ && ($interactive = 1);
if (/^-+$/) {
$startfiles = '- ';
last;
}
}
chop($pwd = `pwd`);
while ($file = shift) {
if ($file =~ s|^(.*)/||) {
$dir = $1;
}
else {
$dir = '.';
}
if ($interactive) {
print "vanish: remove $dir/$file? ";
next unless <stdin> =~ /^y/i;
}
if ($file eq '.deleted') {
print stderr "To delete .deleted (the trashcan) use the 'empty' command.\n";
next;
}
if ($dir ne $olddir) {
do it() if $olddir;
$olddir = $dir;
}
$filelist .= $file; $filelist .= ' ';
}
do it() if $olddir;