#!/usr/bin/perl use strict; use Cwd 'abs_path'; use DBI(); my $basedir= "..."; my $socket=".../mysqld.sock"; my $database="infodb"; my $table="files"; my $sqluser= getpwuid($<); my $pass=""; $#ARGV == 0 or die "usage: $0 \n" . "Removes an entry in the infodb database.\n"; my ($db, $dbstring, $query, $rowref, $insertstr); my ($fname, $name, $path); my @keywords; $fname= $ARGV[0]; $fname= abs_path($fname); # print "$fname\n"; $fname =~ /^$basedir/ or die "$0: File `$fname' not in info directory\n"; -e $fname and print "$0: Warning: File `$fname' still exists\n"; if( -d $fname ) { $name= "/"; $fname =~ /^$basedir(.*)/; $path= $1; } else { $fname =~ /([^\/]*$)/; $name= $1; $fname =~ /^$basedir(.*)$name/; $path= $1; $path =~ s/\/$//; } $dbstring= "DBI:mysql:database=$database;mysql_socket=$socket"; $db= DBI->connect( $dbstring, $sqluser, $pass ); $query= $db->prepare("delete from $table where name = '$name' and path = '$path';"); $query->execute or die "$0: Error deleting entry\n"; $query->finish; $db->disconnect;