# -*- ruby -*-
# this script is intended to be run by root on the solaris.
require 'quota'
require 'etc'
# edit for your OS
case `uname -s`
when /^Linux/
$DEV = "/dev/hda9"
$QUOTAS = "/mnt/hda9/aquota.user"
when /^SunOS/
$DEV = "/quotas"
$QUOTAS = "/quotas"
when /BSD/
$DEV = "/mnt/test"
$QUOTAS = "/mnt/test/quota.user"
end
print("user id: ")
uid = gets.chop
if( uid =~ /\d+/ )
$USER = Etc.getpwuid(uid).name
$UID = uid.to_i
else
$USER = uid
$UID = Etc.getpwnam(uid).uid
end
print("uid = #{$USER}(#{$UID})\n")
begin
Quota.quotaon($DEV, $QUOTAS)
rescue Errno::EBUSY
Quota.quotaoff($DEV)
Quota.quotaon($DEV, $QUOTAS)
end
begin
dq = Quota.getquota($DEV, $UID)
rescue Errno::ESRCH
dq = Quota::DiskQuota.new
end
print("quota = #{dq.inspect}\n")
print("softlimit: ")
softlimit = gets.to_i
dq.bsoftlimit = softlimit # 1block = 1024byte (SunOS 5.6, edquota(1M))
Quota.setquota($DEV, $UID, dq)
other = Quota.getquota($DEV, $UID)
print("quota = #{dq.inspect}\n")
syntax highlighted by Code2HTML, v. 0.9.1