#!/usr/bin/perl

open(DEP, "$ENV{MODULEDIR}/modules.dep") or die "Can't open modules.dep";
$/ = "\n\n";
# map of name to full path
my %names;
# map of path to dependencies
my %deps;
while(<DEP>)
{
  $_ =~ s/\\\n/ /;
  chomp;
  my @line = split(':', $_);
  my $name = $line[0];
  $name =~ s/^.*\///;
  $name =~ s/\..*$//;
  $names{$name} = $line[0];
  $deps{$line[0]} = $line[1];
}
close(DEP);
$/ = "\n";
open(MODULES, "grep -v ^# /etc/mkinitrd/modules | grep .|") or die "Can't open modules";
while(<MODULES>)
{
  chomp;
  foreach my $n ($names{$_}, split('\t', $deps{$names{$_}}) )
  {
    if(length($n) > 0)
    {
      $n =~ s/[ \t]*//g;
      my $dir = $n;
      $dir =~ s/[a-z0-9\-\.]*$//;
#      print "mkdir -p $ENV{INITRDDIR}$dir\n";
#      print "cp $n $ENV{INITRDDIR}$n\n";
      system("mkdir -p $ENV{INITRDDIR}$dir");
      system("cp $n $ENV{INITRDDIR}$n");
    }
  }
}
