--- loncom/lonsql 2001/03/22 15:21:54 1.7 +++ loncom/lonsql 2001/03/26 20:01:30 1.12 @@ -13,6 +13,16 @@ use Fcntl; use Tie::RefHash; use DBI; +my @metalist; +# ----------------- Code to enable 'find' subroutine listing of the .meta files +require "find.pl"; +sub wanted { + (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && + -f _ && + /^.*\.meta$/ && + push(@metalist,"$dir/$_"); +} + $childmaxattempts=10; $run =0;#running counter to generate the query-id @@ -228,7 +238,29 @@ sub make_new_child { } # do custom metadata searching here and build into result - + if ($custom) { + &logthis("am going to do custom query for $custom"); + @metalist=(); pop @metalist; + &find("$perlvar{'lonDocRoot'}/res"); + &logthis("FILELIST:" . join(":::",@metalist)); + # if file is indicated in sql database and + # not part of sql-relevant query, do not pattern match. + # if file is not in sql database, output error. + # if file is indicated in sql database and is + # part of query result list, then do the pattern match. + my $customresult=''; + foreach my $m (@metalist) { + my $fh=IO::File->new($m); + my @lines=<$fh>; + my $stuff=join('',@lines); + if ($stuff=~/$custom/s) { + &logthis("found: $stuff"); + } + $customresult.='&custom='.escape($stuff); + } + $result.=$customresult; + } + # reply with result &reply("queryreply:$queryid:$result",$conserver); }