#!/usr/bin/perl
die "fs-diff2rpm 1.01, convert fs-diff results to %files in .spec file.
fs-diff2rpm is a filter, so you can use STDIN or parameters to define
fs-diff files to convert.\n
fs-diff2rpm [--root=BUILD_ROOT_PATH]\n"
    if grep {/^-h|--help$/} @ARGV;
/^--root=(.*)$/ and $ROOT=$1 for @ARGV;
$ROOT =~ s!/$!!;
@ARGV = grep {! /^--root/} @ARGV;
while (<>) {
    chomp;
    push(@WARN,    $_), next if m!^. (?:\Q$ROOT\E)?/etc/ld.so.cache$!;
    push(@WARN,    $_), next if m!/info/dir$!;
    push(@WARN,    $_), next if m!^-!;
    push(@WARN,    $_), next unless m!^. \Q$ROOT\E/!;
    push(@CHANGED, $_) if m!^\?!;
    s/^..\Q$ROOT\E//;
    # BUG: return %doc /usr/man/
    push(@DIR,     $_), next if -d "${ROOT}$_";
    push(@CONFIG,  $_), next if m!/etc/!;
	# BUG? needed '*' instead '.gz'?
    $_.=".gz" if $ROOT and m!/info/.*info(?:-\d+)?$|/man/.*\.(\d+\w*|n)$!;
    push(@DOC,     $_), next if m!/info/|/man/|/doc/!;
    push(@FILES,   $_);
}
print "\%dir $_\n" 	for @DIR;
print "\%config $_\n" 	for @CONFIG;
print "\%doc $_\n" 	for @DOC;
print "$_\n" 		for @FILES;
warn "\n---CHANGED:\n",  join("\n",@CHANGED), "\n---\n" if @CHANGED;
warn "\n---WARNINGS:\n", join("\n",@WARN),    "\n---\n" if @WARN;
