#!/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 = ; 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 =~ /^y/i; } $filelist .= $file; $filelist .= ' '; } do it() if $olddir;