#!/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;