summaryrefslogtreecommitdiffstats
path: root/qemu/roms/ipxe/contrib/errdb/errdb.pl
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/ipxe/contrib/errdb/errdb.pl')
-rwxr-xr-xqemu/roms/ipxe/contrib/errdb/errdb.pl109
1 files changed, 0 insertions, 109 deletions
diff --git a/qemu/roms/ipxe/contrib/errdb/errdb.pl b/qemu/roms/ipxe/contrib/errdb/errdb.pl
deleted file mode 100755
index 6423d8347..000000000
--- a/qemu/roms/ipxe/contrib/errdb/errdb.pl
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-errdb.pl
-
-=head1 SYNOPSIS
-
-errdb.pl [options] ../../src/bin/errors
-
-Options:
-
- -d,--database=db Specify path to errors.db
- -h,--help Display brief help message
- -v,--verbose Increase verbosity
- -q,--quiet Decrease verbosity
-
-=cut
-
-use Getopt::Long;
-use Pod::Usage;
-use DBI;
-use strict;
-use warnings;
-
-# Parse command-line options
-my $verbosity = 0;
-my $errdb = "errors.db";
-Getopt::Long::Configure ( 'bundling', 'auto_abbrev' );
-GetOptions (
- 'database|d=s' => sub { shift; $errdb = shift; },
- 'verbose|v+' => sub { $verbosity++; },
- 'quiet|q+' => sub { $verbosity--; },
- 'help|h' => sub { pod2usage ( 1 ); },
-) or die "Could not parse command-line options\n";
-pod2usage ( 1 ) unless @ARGV >= 1;
-
-# Open database
-my $dbh = DBI->connect ( "dbi:SQLite:dbname=".$errdb, "", "",
- { RaiseError => 1, PrintError => 0 } );
-$dbh->begin_work();
-
-# Create errors table if necessary
-eval {
- $dbh->selectall_arrayref ( "SELECT * FROM errors LIMIT 1" );
-};
-if ( $@ ) {
- print "Creating errors table\n" if $verbosity >= 1;
- $dbh->do ( "CREATE TABLE errors (".
- " errno char(8) NOT NULL,".
- " description text NOT NULL,".
- " PRIMARY KEY ( errno ) )" );
-}
-
-# Create xrefs table if necessary
-eval {
- $dbh->selectall_arrayref ( "SELECT * FROM xrefs LIMIT 1" );
-};
-if ( $@ ) {
- print "Creating xrefs table\n" if $verbosity >= 1;
- $dbh->do ( "CREATE TABLE xrefs (".
- " errno char(8) NOT NULL,".
- " filename text NOT NULL,".
- " line integer NOT NULL,".
- " UNIQUE ( errno, filename, line ),".
- " FOREIGN KEY ( errno ) REFERENCES errors ( errno ) )" );
- $dbh->do ( "CREATE INDEX xrefs_errno ON xrefs ( errno )" );
-}
-
-# Parse input file(s)
-my $errors = {};
-my $xrefs = {};
-while ( <> ) {
- chomp;
- ( my $errno, my $filename, my $line, my $description ) = split ( /\t/ );
- $errno = substr ( $errno, 0, 6 ) unless $errno =~ /^7f/;
- $errors->{$errno} = $description;
- $xrefs->{$errno} ||= {};
- $xrefs->{$errno}->{$filename} ||= {};
- $xrefs->{$errno}->{$filename}->{$line} ||= 1;
-}
-
-# Ensure all errors are present in database
-my $error_update =
- $dbh->prepare ( "UPDATE errors SET description = ? WHERE errno = ?" );
-my $error_insert = $dbh->prepare ( "INSERT INTO errors VALUES ( ?, ? )" );
-while ( ( my $errno, my $description ) = each %$errors ) {
- print "Error ".$errno." is \"".$description."\"\n" if $verbosity >= 2;
- if ( $error_update->execute ( $description, $errno ) == 0 ) {
- $error_insert->execute ( $errno, $description );
- }
-}
-
-# Replace xrefs in database
-$dbh->do ( "DELETE FROM xrefs" );
-my $xref_insert = $dbh->prepare ( "INSERT INTO xrefs VALUES ( ?, ?, ? )" );
-while ( ( my $errno, my $xref_errno ) = each %$xrefs ) {
- while ( ( my $filename, my $xref_filename ) = each %$xref_errno ) {
- foreach my $line ( keys %$xref_filename ) {
- print "Error ".$errno." is used at ".$filename." line ".$line."\n"
- if $verbosity >= 2;
- $xref_insert->execute ( $errno, $filename, $line );
- }
- }
-}
-
-# Close database
-$dbh->commit();
-$dbh->disconnect();