#!/usr/bin/perl

# Copyright (C) 2000 NEC Corporation
# All Rights Reserved.

# RCS: $Id: wbmcedquota,v 1.1 2006/12/22 05:35:01 shodai Exp $

##000727 4.1  misa Require

# 000724 misa rep require
#require "/opt/nec/wbmc/lib/wbmc.pl";
require "../lib/wbmc.pl";


$file = $ARGV[0];

$home = $ENV{'WBMC_QUOTA_HOME'};
$mail = $ENV{'WBMC_QUOTA_MAIL'};

#####################################################################
# /home -> $homedir
&readFile("/etc/default/useradd", "useradd", *lines);
for ($i = 0; $i <= $#lines; $i++) {
	if ($lines[$i] =~ /^HOME=(.+)/) {
		$homedir = $1;
		$homedir =~ s/\s+$//;
	}
}
$homefs = &getQuotaFS("$homedir");

$mailfs = &getQuotaFS("/var/spool/mail");

open(IN, $file);
@line = <IN>;
close(IN);

for ($i = 0; $i <= $#line; $i++) {
    @ent = split(/:/, $line[$i]);
    if ($ent[0] eq $homefs) {
        $line[$i] =~ /^$homefs: blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
        $line[$i] = "$homefs: blocks in use: $1, limits (soft = $2, hard = $home)\n";
	$home_quota = $3;
    }

    if ($ent[0] eq $mailfs) {
        $line[$i] =~ /^$mailfs: blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
        $line[$i] = "$mailfs: blocks in use: $1, limits (soft = $2, hard = $mail)\n";
	$mail_quota = $3;
    }
}

if ($home eq "" && $mail eq "") {
	print "home=$home_quota\n";
	print "mail=$mail_quota\n";
	exit(1);
}

open(OUT, ">$file");
print OUT @line;
close(OUT);
exit(1);

sub getQuotaFS
{
    my($dir) = @_;
    my($fs);

    open(IN, "/bin/df $dir 2>&1 |");
    <IN>;
    $fs = (split(/\s+/, <IN>))[0];
    close(IN);

    return ($fs);
}

