X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Fexport.pl;h=145f34dd277dfd64abcfa08a535f1090fbb5761d;hb=1b17f9b29fd1ea8a37a591ca86f26d90f4274ea7;hp=ac55810cafa108b8333bb96033ca341f0a67123c;hpb=ed9e8f34c786b7ceba6459c763ef8206eec0fd0d;p=pciids.git diff --git a/scripts/export.pl b/scripts/export.pl index ac55810..145f34d 100755 --- a/scripts/export.pl +++ b/scripts/export.pl @@ -1,5 +1,23 @@ #!/usr/bin/perl +# PciIds web database +# Copyright (C) 2008 Michal Vaner (vorner@ucw.cz) +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# he Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + use strict; use warnings; BEGIN { @@ -8,12 +26,23 @@ BEGIN { use PciIds::Db; use PciIds::DBQAny; +my $tree = shift; + +die "Specify tree to dump as a first parameter\n" unless defined $tree; + my $db = PciIds::DBQAny::new( connectDb(), { - 'list' => 'SELECT id, name, note FROM locations WHERE name IS NOT NULL ORDER BY id' + 'list' => 'SELECT id, name, note FROM locations WHERE id like ? ORDER BY id' } ); -foreach( @{$db->query( 'list', [] )} ) { +my $lastInvalid = undef; + +foreach( @{$db->query( 'list', [ "$tree/%" ] )} ) { my( $id, $name, $description ) = @{$_}; + next if defined $lastInvalid and substr( $id, 0, length $lastInvalid ) eq $lastInvalid; + if( !defined $name || $name eq '' ) { + $lastInvalid = $id; + next; + } $_ = $id; my $prefix = ( /^PD\/..$/ ) ? 'C ' : ''; s/^P.\///; @@ -21,12 +50,13 @@ foreach( @{$db->query( 'list', [] )} ) { s/\//\t/g; my $tabs = $_; $id =~ s/.*\///; - print "$tabs$prefix$id $name\n"; + $id =~ s/([0-9a-f]{4})([0-9a-f]{4})/$1 $2/; if( defined( $description ) && ( $description ne '' ) ) { chomp $description; - $description =~ s/\n/\n$tabs#/g; - print "$tabs#$description\n"; + $description =~ s/\n/\n# /g; + print "# $description\n"; } + print "$tabs$prefix$id $name\n"; } $db->commit();