#!/usr/local/bin/perl # update.pl - change qz version 1 files to qz version 2 files # Copyright (C) 1996 by John J. Chew, III # All rights reserved. $gkVersion = '1.0.0a1'; sub Usage { die "Usage: $0 [-v] file...\n". " -v display version number\n"; } require 'getopts.pl'; $opt_v = 0; &Getopts('v') || &Usage; if ($opt_v) { print "$gkVersion\n"; exit 0; } $#ARGV >= 0 || &Usage; $_ = $ENV{'PATH'}; if (/^\//) { $gEnvironment = 'unix'; $gDBMSuffix = '.dir'; } elsif (/^[A-Z]:\\/) { $gEnvironment = 'dos'; $gDBMSuffix = '.db'; } else { die "Unknown environment, please contact jjchew\@math.utoronto.ca\n"; } $flags = 'CO'; for $file (@ARGV) { $file =~ s/\.(db|dir|pag)$//; dbmopen(DB, $file, 0600); $time = (stat("$file$gDBMSuffix"))[9]; open(FILE, ">$file.qz") || die "can't create $file.qz ($!)"; $found = 0; while (($key, $val) = (each %DB)) { ($rating, $answer) = split(/\t/, $val); $rating = '+100' if $rating eq 'new'; print FILE "$key\t$answer\t$rating\t$time\t$flags\t\n"; $found = 1; } close(FILE); dbmclose(DB); unless ($found) { unlink "$file.qz"; die "$file is empty.\n"; } }