#!/usr/bin/perl -w

=head1 NAME

    mk-dbconfig-monitor-files - создание файлов для отправки нотификаций о изменениях коннектов к БД

=head1 USAGE

    # Директовые конфиги, почта + http
    mk-dbconfig-monitor-files $(DEST_SRC) yandex-direct \
        -d email=direct-updates@yandex-team.ru \
        -d email_from=direct-updates@yandex-team.ru \
        -d target='/var/www/ppc.yandex.ru/etc/db-config.yaml'
        -d url='http://direct-dev.yandex-team.ru/versionica/update/db'
        -d title='Direct'

=head1 DESCRIPTION
    

=cut

use strict;
use warnings;

use Email::Valid;

use SvnRelease::MkFiles;

my $mkfiles = SvnRelease::MkFiles->new(
    files => [
        {tmpl => 'dbconfig_monitor_config', file => "/etc/dbconfig-monitor.d/[% config_name %]", conf => 1},
        ],
    templates_fh => \*DATA,
    );

my ($config_name, @dummy) = $mkfiles->parse_options("config_name");
if (@dummy) {
    $mkfiles->usage("Incorrect number of parameters");
} elsif ($config_name !~ /^[a-z0-9_\-]+$/) {
    $mkfiles->usage("Incorrect config_name");
}
if (!defined $mkfiles->{vars}->{email}) {
    die "email is not defined";
} elsif (!Email::Valid->address($mkfiles->{vars}->{email})) {
    die "Incorrect email defined: '$mkfiles->{vars}->{email}'";
}

$mkfiles->{vars}->{config_name} = $config_name;

$mkfiles->mk();

__DATA__
<< dbconfig_monitor_config
---
[% IF email || url ~%]
transport:
[% IF url %]  - http 
[% END ~%]
[% IF email %]  - email
[% END ~%]
[% END ~%]
target: '[% target || '' %]'
email: [% conf ? conf_data.$conf.email : email %]
email_from: [% conf ? conf_data.$conf.email_from : email_from %]
[% IF url %]url: '[% url %]' 
[% END ~%]
title: '[% title || '' %]'

