Current File : //usr/share/webmin/fsdump/rmulti.pl
#!/usr/bin/perl
# rmulti.pl
# Called when a tape change is needed for a multi-file restore. Links the
# base filename to the next one in the ordered sequence of multi-files

$no_acl_check++;
delete($ENV{'SCRIPT_NAME'});	# force use of $0 to determine module
delete($ENV{'FOREIGN_MODULE_NAME'});
require './fsdump-lib.pl';

$ARGV[0] =~ /^(.*)\/([^\/]+)$/ || die "Missing filename";
$dir = $1;
$file = $2;

# Find out where we are up to
$lnk = readlink($ARGV[0]);
if ($lnk =~ /^\Q$file\E\.(\d+)$/ && -r "$dir/$lnk" && !$ARGV[1]) {
	# Going to next file
	$nxt = "$file.".($1 + 1);
	}
else {
	# First file
	-r $ARGV[0] && !-l $ARGV[0] &&
		die "$ARGV[0] is not a link to the current archive!";
	$nxt = "$file.1";
	}

# Update the link
unlink($ARGV[0]);
symlink($nxt, $ARGV[0]);
exit(0);