summaryrefslogtreecommitdiffstats
path: root/update-ldetect-lst
blob: 197fe22d3fcfe850809fbef86105fba71336d363 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl

my $dir = '/usr/share/ldetect-lst';
my @files = qw(pcitable usbtable isatable pcmciatable dmitable);

unlink("$dir/$_", "$dir/$_.gz") foreach @files;

$ARGV[0] eq '--clean' and exit 0;

foreach (@files) {
    my $d = "$dir/$_.d";
    -d $d or next;
    my @l = sort(glob("$d/*.lst"), glob("$d/*.lst.gz")) or next;

    if (@l == 1 && $l[0] =~ /gz$/) {
	link $l[0], "$dir/$_.gz";
    } else {
	open(my $OUT, "| gzip -9 > $dir/$_.gz");
	foreach (@l) {
	    open(my $IN, /gz$/ ? "gzip -dc $_ |" : $_) or next;
	    print $OUT $_ foreach <$IN>;
	}
    }
}