#!/usr/bin/perl -w
#============================================================================#
# Обновление changelog и версии в базовом spec из основного                  #
#============================================================================#
# (C) Denis Smirnov <mithraen@freesource.info>                               #
#============================================================================#
use strict;
use v5.14;

die "It's not specgen-based package\n" unless -d "specs";

my $spec = `gear --command sh -- -c 'printf %s"\$gear_specfile"'`;

open( IN, "<", "$spec" ) || die;
undef $/;
$_ = "\n" . <IN>;
my $version = $1 if s/\nVersion:\s*([^\s]+)\s*/\n/s;
my $release = $1 if s/\nRelease:\s*([^\s]+)\s*/\n/s;

my $changelog = $1 if $_ =~ /\n%changelog\s*\n(.+)$/s;
$changelog =~ s/\s+$/\n/s;

close( IN );

    
open( IN, "<", "specs/$spec" ) || die;
my $specdata = <IN>;
close( IN );

$specdata =~ s/(\nVersion:\s*)([^\s]+)\s*?\n/$1$version\n/s;
$specdata =~ s/(\nRelease:\s*)([^\s]+)\s*?\n/$1$release\n/s;
$specdata =~ s/(\n%changelog\n).*$/$1$changelog/s;

open( OUT, ">", "specs/$spec" ) || die;
print OUT $specdata;
close( OUT );
