#!/usr/bin/perl
# Figure out which rpms are used in the mcp-based version of genesis by looking at the files
# we pull in and working backward to the rpms.
use strict;

my $genesisrpm = shift @ARGV;
my %rpms;
my @files = `rpm -qlp $genesisrpm`;
my $total = scalar(@files);
my $i     = 0;
foreach my $f (@files) {
    $i++;
    print "$i/$total\r";
    chomp($f);
    if ($f !~ m|/opt/xcat/share/xcat/netboot/genesis/x86_64/fs|) { next; }
    $f =~ s|^/opt/xcat/share/xcat/netboot/genesis/x86_64/fs||;
    if (!$f || !(-e $f)) { next; } # there are files dracut creates that are not part of an rpm
    my $rpm = `rpm -q --whatprovides $f`;
    if ($?) { next; } # there are files dracut creates that are not part of an rpm
                      #print '.';	# show progress
    chomp($rpm);
    $rpms{$rpm} = 1;
}
print "\n";
foreach my $r (sort keys %rpms) { print "$r\n"; }
exit;
