# -*- 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