use Text::BibTeX;
use User;
use Data::Printer;
+use POSIX;
use DBI;
my @dirs = ref($dir)?@{$dir}:$dir;
my $actually_load_it = sub {
+ if (/\.git/) {
+ $File::Find::prune = 1;
+ return;
+ }
return unless /\.pdf$/;
my $xoj = 0;
if (-e "${_}.xoj") {
die "Unable to fork for some reason: $!";
}
if ($child == 0) {
+ foreach (0 .. (POSIX::sysconf (&POSIX::_SC_OPEN_MAX) || 1024))
+ { POSIX::close $_ }
+ open (STDIN, "</dev/null");
+ open (STDOUT, ">/dev/null");
+ open (STDERR, ">&STDOUT");
exec(@cmd);
} else {
return $child;
return unless defined $entry and ref $entry and keys %{$entry};
if (defined $entry->{file_name} and length $entry->{file_name}) {
my $paper = select_one($dbh,$sth->{select_papers_by_name},$entry->{file_name});
+ if (not defined $paper) {
+ my ($pmid) = $entry->{file_name} =~ /pmid_(\d+)/;
+ if (defined $pmid and length $pmid) {
+ $paper = select_one($dbh,$sth->{select_papers_by_pmid},'%pmid_'.$pmid.'.%');
+ }
+ }
p $paper if $DEBUG;
print STDERR $entry->{file_name} if $DEBUG;
if (defined $paper) {
EOF
select_papers_by_name => <<'EOF',
SELECT * FROM papers WHERE file_name = ?;
+EOF
+ select_papers_by_pmid => <<'EOF',
+SELECT * FROM papers WHERE file_name LIKE ?;
EOF
select_papers_by_path => <<'EOF',
SELECT * FROM papers WHERE path = ?;