#!/usr/bin/perl -w
use strict;
use vdef_globals;
use DBI();

my( $domain, $passwd, $homedir );

my( $dbh, $sth );
my( $rows );
my $dbpass;

if( $#ARGV!=0 ){
   print "usage: vodmain_add domain\n";
   exit 1;
}
$domain = $ARGV[0];

$dbpass = readpw();

$dbh = DBI->connect($vdef_globals::db_datasource,
                    $vdef_globals::db_user, $dbpass,{'RaiseError' => 1});
$sth = $dbh->prepare("SELECT * FROM domains WHERE userid=".$dbh->quote($domain));
$sth->execute();
$rows=$sth->rows;
$sth->finish;
if( $rows>0 ){
   print "domain $domain exists\n";
}
else {
   my $salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];
   $passwd = crypt($domain."us", $salt);
   $homedir = $vdef_globals::mail_home_prefix . "/" . $domain;
   $dbh->do("INSERT INTO domains (userid,passwd,homedir) VALUES (" . 
      $dbh->quote($domain) . "," .
      $dbh->quote($passwd) . "," .
      $dbh->quote($homedir) . ")");
   mkdir $homedir;
   mkdir "$homedir/www";
   chown $vdef_globals::domain_uid, $vdef_globals::domain_gid, "$homedir/www";
   mkdir "$homedir/users";
   chown $vdef_globals::mail_uid, $vdef_globals::mail_gid, "$homedir/users";
   $dbh->do("INSERT INTO users (id,crypt,clear,uid,gid,maildir) VALUES (" .
         "\"postmaster\@" . $domain . "\"," . "\"*\", \"*\", " .
	 $vdef_globals::mail_uid . "," . $vdef_globals::mail_gid .
         ",\"" . $vdef_globals::postmaster . "\")");
}
$dbh->disconnect();

