#!/usr/bin/perl use strict; use Data::Dumper; use POSIX qw(strftime); my $file = $ARGV[0]; my @todelete; open(FILE, $file) or die; while () { if (/^[%]lang\((\w+)\)\s+(\S+)/) { if ($1 ne 'id') { push @todelete, $2; } } } close FILE; my $state = 'preamble'; my $sourcedone = 0; open(FILE, $file) or die; while () { if (/^\%(prep|build|install|clean|pre|postun|preun|post|changelog|description|files|package)/) { if ($state eq 'install') { print "# deleting unneeded language files\n"; foreach(@todelete) { print "rm -fr \$RPM_BUILD_ROOT/$_\n"; } print "\n"; } $state = $1; if ($state eq 'changelog') { print; my $date = strftime("%a %b %e %Y", gmtime()); print "* $date Script Blankoninasi \n"; print "- run this spec file through blankonisasi.pl\n"; print "\n"; next; } } elsif (/^Release: \S+/) { s/Release: (\S+)/Release: $1bl/g; } elsif (/^\%lang\((\w+)\)/) { next if $1 ne 'id'; } elsif (/^Source(\d*):/) { if ($sourcedone == 0) { print "Source1000000: $file-fedora\n"; print; $sourcedone = 1; next; } } print; } close FILE;