You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
Perl
51 lines
1.2 KiB
Perl
#!/usr/bin/perl
|
|
|
|
use Fcntl qw(/^O_/);
|
|
|
|
(my $Me = $0) =~ s-.*/--;
|
|
|
|
# XXX This should read your config file and default to the database type
|
|
# you specified there. The library should be extended to support this.
|
|
|
|
my $module = my $def_module = 'AnyDBM_File';
|
|
|
|
if (@ARGV && $ARGV[0] =~ s/^-m//) {
|
|
$module = shift;
|
|
if ($module eq '') {
|
|
@ARGV or die "$Me: no arg for -m specified\n";
|
|
$module = shift;
|
|
}
|
|
}
|
|
|
|
if (!@ARGV || grep /^-/, @ARGV) {
|
|
print "\n";
|
|
print " usage: $Me [-m <dbm module>] <dbname>\n";
|
|
print "\n";
|
|
print " prints out an ascii flat file of the\n";
|
|
print " database <dbname>. <dbname> should be\n";
|
|
print " the basename of the db, e.g.\n";
|
|
print "\n";
|
|
print " $Me infobot-is\n";
|
|
print "\n";
|
|
print " <dbm module> is an alternate for $def_module,\n";
|
|
print " eg DB_File\n";
|
|
print "\n";
|
|
exit(1);
|
|
}
|
|
|
|
eval "require $module"; die if $@;
|
|
$| = 1;
|
|
|
|
foreach $dbname (@ARGV) {
|
|
tie(%db, $module, $dbname, O_RDONLY, undef)
|
|
|| die "Couldn't open \"$dbname\" with $module: $!";
|
|
|
|
my ($key, $val);
|
|
while (($key, $val) = each %db) {
|
|
chomp $val;
|
|
print "$key => $val\n";
|
|
}
|
|
|
|
untie(%db) || die "untie() on $dbname failed: $!";
|
|
}
|