Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

66 lines
1.4 KiB

#!/usr/bin/perl
# $RCSfile: unvanish,v $$Revision: 4.1 $$Date: 92/08/07 17:20:52 $
sub it {
if ($olddir ne '.') {
chop($pwd = `pwd`) if $pwd eq '';
(chdir $olddir) || die "Directory $olddir is not accesible";
}
unless ($olddir eq '.deleted') {
if (-d '.deleted') {
chdir '.deleted' || die "Directory .deleted is not accesible";
}
else {
chop($pwd = `pwd`) if $pwd eq '';
die "Directory .deleted does not exist" unless $pwd =~ /\.deleted$/;
}
}
print `mv $startfiles$filelist..$force`;
if ($olddir ne '.') {
(chdir $pwd) || die "Can't get back to original directory $pwd: $!\n";
}
}
if ($#ARGV < 0) {
open(lastcmd,'.deleted/.lastcmd') ||
open(lastcmd,'.lastcmd') ||
die "No previous vanish in this dir";
$ARGV = <lastcmd>;
close(lastcmd);
@ARGV = split(/[\n ]+/,$ARGV);
}
while ($ARGV[0] =~ /^-/) {
$_ = shift;
/^-f/ && ($force = ' >/dev/null 2>&1');
/^-i/ && ($interactive = 1);
if (/^-+$/) {
$startfiles = '- ';
last;
}
}
while ($file = shift) {
if ($file =~ s|^(.*)/||) {
$dir = $1;
}
else {
$dir = '.';
}
if ($dir ne $olddir) {
do it() if $olddir;
$olddir = $dir;
}
if ($interactive) {
print "unvanish: restore $dir/$file? ";
next unless <stdin> =~ /^y/i;
}
$filelist .= $file; $filelist .= ' ';
}
do it() if $olddir;