#!/usr/bin/perl # makeqif.pl # written by Frederik Holst (frederik@hol.st) in August 2001 # tool to make the atari8.qif file needed by xlsearch # feel free to copy ! # Bugfix by Bill Kendrick (was generating 1-digit days), 2018-04-12 $BLURB = ".blurb"; $NOBLURB = "No description available"; $OUTPUT = "atari8.qif"; # $path = "~"; # $direntry = "."; # &getdirtree; @dirlisting = `find . -name "*" -print;`; &parsedir (@dirlisting); sub parsedir { open (QIF,">$OUTPUT"); @dirlist = @_; foreach $entry (@dirlist) { chomp ($entry); if ((-d $entry ne 1) && (($entry =~ /$BLURB/) ne 1)) { ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, $atime,$mtime,$ctime,$blksize,$blocks) = stat($entry); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($mtime); $mon++; $datestring = sprintf("%02d", $year % 100) . sprintf("%02d", $mon) . sprintf("%02d", $mday); $blurbfile = "$entry$BLURB"; if (-e $blurbfile) { open (BLURB,"$entry$BLURB"); $description=; chomp ($description); close BLURB; } else { $description = $NOBLURB; } $entry = substr($entry,2); print QIF "$entry\t$datestring\t$size\t$description\n"; } } close QIF; } sub getdirtree { opendir (DIR, "$direntry"); while ($direntry = readdir(DIR)) { if (-d $direntry ne 1) { push @dirlisting,$direntry; } else { if ($direntry ne "." && $direntry ne "..") { &getdirtree($direntry); } } } closedir DIR; return @dirlisting; }