summaryrefslogtreecommitdiff
path: root/ldap-scripts/edquota_editor
diff options
context:
space:
mode:
authorjkar8572 <jkar8572>2004-04-23 11:58:26 +0000
committerjkar8572 <jkar8572>2004-04-23 11:58:26 +0000
commit06ac151a68c668a8c4cee8a2a377b0ae93b99fb1 (patch)
tree68df4913424e2546a57e4d644d7f675d275e052a /ldap-scripts/edquota_editor
parent5368b78b1ff83d0e9d8f3c15eab0ccb35517e391 (diff)
Added LDAP perl scripts (Stefan Adams)
Diffstat (limited to 'ldap-scripts/edquota_editor')
-rwxr-xr-xldap-scripts/edquota_editor32
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;
+}