File: find-unpackaged

package info (click to toggle)
kernel-wedge 2.106
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 396 kB
  • sloc: perl: 581; sh: 352; makefile: 21
file content (40 lines) | stat: -rwxr-xr-x 1,002 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/perl
# Find unpackaged modules. Pass the kernel name and installed name
# (normally the same).
use strict;
use warnings;
use File::Find ();
use File::Spec;

use KernelWedge qw(MODULE_FILENAME_RE);

my $kernel = $ARGV[0];
my $installedname = $ARGV[1];

my $sourcedir = $ENV{SOURCEDIR} || '';
my ($moddir) = grep {-d "$sourcedir$_"}
   ("/usr/lib/modules/$installedname",
    "/lib/modules/$installedname");
die "No source modules directory found" unless defined($moddir);

my %unpackaged;
my $dir = "$sourcedir$moddir";
File::Find::find(
    sub {
	$unpackaged{File::Spec->abs2rel($File::Find::name, $dir)} = 1
	    if $_ =~ MODULE_FILENAME_RE;
    },
    $dir);
for my $dir (glob("debian/*-modules-$kernel-di$moddir")) {
    File::Find::find(
	sub {
	    delete $unpackaged{File::Spec->abs2rel($File::Find::name, $dir)}
	    if $_ =~ MODULE_FILENAME_RE;
	},
	$dir);
}

print "These modules from $kernel are unpackaged:\n";
for my $path (sort(keys(%unpackaged))) {
    print "\t\t$path\n";
}