diff options
author | jkar8572 <jkar8572> | 2004-04-23 11:58:26 +0000 |
---|---|---|
committer | jkar8572 <jkar8572> | 2004-04-23 11:58:26 +0000 |
commit | 06ac151a68c668a8c4cee8a2a377b0ae93b99fb1 (patch) | |
tree | 68df4913424e2546a57e4d644d7f675d275e052a /ldap-scripts/edquota_editor | |
parent | 5368b78b1ff83d0e9d8f3c15eab0ccb35517e391 (diff) |
Added LDAP perl scripts (Stefan Adams)
Diffstat (limited to 'ldap-scripts/edquota_editor')
-rwxr-xr-x | ldap-scripts/edquota_editor | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/ldap-scripts/edquota_editor b/ldap-scripts/edquota_editor new file mode 100755 index 0000000..95a03ee --- /dev/null +++ b/ldap-scripts/edquota_editor @@ -0,0 +1,32 @@ +#!/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]; +$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 { + local($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; +} |