blob: fdebd09e35a48b8514619a133d127c669106b8ee [file] [log] [blame]
#!/usr/bin/perl -w
use strict;
die "QUOTA_USER environment variable not set\n" unless defined $ENV{'QUOTA_USER'};
die "QUOTA_FILESYS environment variable not set\n" unless defined $ENV{'QUOTA_FILESYS'};
die "QUOTA_SBLOCKS environment variable not set\n" unless defined $ENV{'QUOTA_SBLOCKS'};
die "QUOTA_HBLOCKS environment variable not set\n" unless defined $ENV{'QUOTA_HBLOCKS'};
die "QUOTA_SFILES environment variable not set\n" unless defined $ENV{'QUOTA_SFILES'};
die "QUOTA_HFILES environment variable not set\n" unless defined $ENV{'QUOTA_HFILES'};
open FILE, $ARGV[0];
my $qdata = join '', (@_=<FILE>);
close FILE;
open FILE, ">$ARGV[0]";
print FILE &edit_quota_file($qdata, $ENV{'QUOTA_FILESYS'}, $ENV{'QUOTA_SBLOCKS'}, $ENV{'QUOTA_HBLOCKS'}, $ENV{'QUOTA_SFILES'}, $ENV{'QUOTA_HFILES'});
close FILE;
# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file {
my($rv, $line, @line, $i);
@line = split /\n/, $_[0];
for ( $i=0; $i<@line; $i++ ) {
if ($line[$i] =~ /^\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)$/ && ($1 eq $_[1] || $_[1] eq '*')) {
# new-style line to change
$rv .= " $1 $2 $_[2] $_[3] $5 $_[4] $_[5]\n";
} else {
$rv .= "$line[$i]\n";
}
}
return $rv;
}