#!/usr/bin/perl -w

use esmith::Build::CreateLinks qw(:all);

foreach $event (qw(
                    email-update
                    domain-modify
                    domain-create
                    domain-delete
                    bootstrap-console-save
                    smeserver-qpsmtpd-update
                ))
{
    event_link("domains-update-dkim", $event, "30");
}

my $service = "/var/service/qpsmtpd";

foreach $event (qw(
		    network-create
		    network-delete
                    smeserver-qpsmtpd-update
		))
{
    templates2events("$service/config/relayclients", $event);
}

foreach $event (qw(
		    bootstrap-console-save
		    console-save
		    email-update
		    network-create
		    network-delete
                    smeserver-qpsmtpd-update
		))
{
    templates2events("$service/peers/0", $event);
    templates2events("$service/peers/local", $event);

    templates2events("$service/config/peers/0", $event);
    templates2events("$service/config/peers/local", $event);
}

templates2events("$service/runenv", qw(
			bootstrap-console-save
			console-save
			email-update
			smeserver-qpsmtpd-update
		      ));

templates2events("$service/ssl/cert.pem", qw(
			bootstrap-console-save
			console-save
			email-update
			ssl-update
                        smeserver-qpsmtpd-update
		      ));

templates2events($_, qw(
                        bootstrap-console-save
                        console-save
                        email-update
                        smeserver-qpsmtpd-update
                      ))
                        for (qw(
                            /etc/mail-dmarc.ini
                            /home/e-smith/dkim_keys/default/selector
                        ));

my $secure_service = "/var/service/sqpsmtpd";

templates2events("$secure_service/runenv", qw(
			bootstrap-console-save
			console-save
			email-update
                        smeserver-qpsmtpd-update
		      ));

my $control = "/var/qmail/control";
templates2events("$control/badmailfrom", qw(
			bootstrap-console-save
			console-save
			email-update
                        smeserver-qpsmtpd-update
		      ));
templates2events("$control/badrcptto", qw(
			bootstrap-console-save
			console-save
			email-update
			domain-create
			domain-delete
			user-create
			user-delete
			user-modify
			group-create
			group-delete
			group-modify
			pseudonym-create
			pseudonym-delete
			pseudonym-modify
                        smeserver-qpsmtpd-update
		      ));

my $config = "/var/service/qpsmtpd/config";
templates2events("$config/$_", qw(
			bootstrap-console-save
			console-save
			email-update
                        smeserver-qpsmtpd-update
		      )) 
			for (qw(
				IP
				badhelo
				badrcptto
				badrcptto_ext
				dnsbl_zones
				dnsbl_allow
				uribl_zones
				loglevel
				memory_threshold
				plugins
				relayclients norelayclients
				rhsbl_zones
				signatures_patterns
				plugin_dirs
				smtpgreeting
				spool_dir
                                subject_prefix
				invalid_resolvable_fromhost
				timeout
				timeoutsmtpd
				tls_before_auth
				tls_ciphers
				tls_protocols
				));
templates2events("$config/badrcptto_ext", qw(
                        domain-create
                        domain-delete
                        user-create
                        user-delete
                        user-modify
                        group-create
                        group-delete
                        group-modify
                        pseudonym-create
                        pseudonym-delete
                        pseudonym-modify
                        smeserver-qpsmtpd-update
                      ));

templates2events("$config/$_", qw(
			ssl-update
                        smeserver-qpsmtpd-update
                      ))
			for (qw(
				tls_before_auth
				tls_ciphers
				tls_protocols
				));

templates2events("$config/badhelo", 'ip-change');

templates2events("$config/goodrcptto", qw(
				bootstrap-console-save
				email-update
				domain-create
				domain-delete
				user-create
				user-delete
				user-modify
				pseudonym-create
				pseudonym-delete
				pseudonym-modify
				group-create
				group-delete
				group-modify
	                        smeserver-qpsmtpd-update
		));

safe_touch("root/etc/e-smith/templates/$config/forcespamcheck/template-begin");
templates2events("$config/forcespamcheck", qw(
                                bootstrap-console-save
                                email-update
                                domain-create
                                domain-delete
                                user-create
                                user-delete
                                user-modify
                                pseudonym-create
                                pseudonym-delete
                                pseudonym-modify
                                group-create
                                group-delete
                                group-modify
	                        smeserver-qpsmtpd-update
                ));



for my $daemon ( qw(qpsmtpd sqpsmtpd) )
{
    safe_symlink("sighup",
	"root/etc/e-smith/events/email-update/services2adjust/$daemon");
    safe_symlink("sighup",
	"root/etc/e-smith/events/ssl-update/services2adjust/$daemon");
}

for my $event ( qw(network-create network-delete) )
{
    safe_symlink("sigusr1",
	"root/etc/e-smith/events/$event/services2adjust/qpsmtpd");
}


my $event = 'smeserver-qpsmtpd-update';
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/qpsmtpd");
safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/sqpsmtpd");
templates2events("/etc/systemd/system-preset/49-koozali.preset", $event);
event_link("systemd-reload", $event, "89");
event_link("systemd-default", $event, "88");