#!/usr/bin/perl use Cwd; use File::Temp qw(tempdir); use Date::Format; use File::Basename; $ADDRESS = 'Jason Tibbitts '; $RPM = "/bin/rpm"; $RPMBUILD = "/usr/bin/rpmbuild"; $TMPDIR = tempdir("/tmp/specbump.XXXXXX", CLEANUP => 1); $FILE = getcwd() ."/$ARGV[0]"; $SRCRPMDIR = dirname($FILE); $WITH_DIRS = "--define \"_sourcedir $TMPDIR\" --define \"_builddir $TMPDIR\"" . " --define \"_srcrpmdir $SRCRPMDIR\" --define \"_rpmdir $TMPDIR\"". " --define \"_specdir $TMPDIR\""; mkdir $TMPDIR; print "$RPM $WITH_DIRS -ivh $FILE\n"; system("$RPM $WITH_DIRS -ivh $FILE"); chdir $TMPDIR; # Now muck with the specfile opendir DIR, "."; while (defined($specfile = readdir(DIR))) { last if $specfile =~ /.*\.spec/; } closedir DIR; open SPEC, $specfile; open NSPEC, ">$specfile.bump"; $lineno = 0; while (defined($line = )) { $lineno++; last if $line =~ /^Release:/; print NSPEC $line; } ($str, $rel, $rest) = $line =~ /(release:\s*)([\d.])(.*)/i; $rel = int($rel)+1; print NSPEC "${str}${rel}${rest}\n"; while (defined($line = )) { $lineno++; last if $line =~ /^%changelog/; print NSPEC $line; } print NSPEC $line; $time = time2str("%a %b %d %Y", time); print NSPEC "* $time $ADDRESS\n\n\n"; $lineno+=2; while (defined($line = )) { print NSPEC $line; } system("/usr/bin/vim +$lineno $specfile.bump"); rename $specfile, "$specfile.save"; rename "$specfile.bump", $specfile; system("$ENV{SHELL}"); print "Creating new specfile.\n"; system("$RPMBUILD $WITH_DIRS -bs --nodeps $specfile");