#!/usr/bin/perl -w

package esmith;

use strict;
use Errno;
use esmith::ConfigDB;
use esmith::AccountsDB;
use NetAddr::IP;
use Net::Netmask;

my $conf = esmith::ConfigDB->open_ro;
my $netdb = esmith::ConfigDB->open('networks');
my $accounts = esmith::AccountsDB->open;
esmith::ConfigDB->create('/home/e-smith/db/wireguard') unless (-f '/home/e-smith/db/wireguard');
my $wg = esmith::ConfigDB->open('/home/e-smith/db/wireguard')  or die 'wireguard db missing';
my $wg0 = $conf->get('wg-quick@wg0');
my $wgip = $wg0->prop('ip') or die 'wireguard IP not configured';
my $wgmask = $wg0->prop('mask') or die 'wireguard network mask not configured';
#wg-quick@wg0=service
#    ip=172.16.0.1
#    mask=22
my $block = Net::Netmask->new("$wgip/$wgmask", shortnet => 1);
my $ip = $block->base;
my $mask = $block->mask;

my $iswg=$netdb->get($ip);
unless ($iswg) {
  $netdb->new_record("$ip",{	type => "network", 
				Mask => "$mask",
				Wireguard => "wg0",
			});
  system("/sbin/e-smith/signal-event network-create $ip");
  print "creating $ip network with $mask for $wgip/$wgmask";
  exit;
}


