#========================================================================= # oooooooooooooldies.... dunno, maybe are goldies # # altblue 1998-1999 #========= #========================================================================= # usage $filesize = fsize(_filename_); # returns the size of _filename_ in bytes or undef if any errors. #========= sub fsize { local $file = $_[0]; local @attr = lstat($file); return $attr[7]; } #========================================================================= # usage isin($var,@array) # - returns 1 if $var is a member of @array, undef unless. #========= sub isin { local ($v,@m)=@_; foreach(@m){ return 1 if("$v" eq "$_"); } } #========================================================================= # usage: @files = lsdir(<_directory_>) #========= sub lsdir { local $dir = @_ ? $_[0] : '.'; local @files; return undef unless(-d $dir); opendir(DIR, $dir); foreach (readdir(DIR)) { next if $_ eq '.' || $_ eq '..'; push(@files,$_); } closedir(DIR); return @files; } #========================================================================= # usage: pwinfo(_login-name_) # # Sets %login-name as a side effect # (realname,id,gid,shell,home,office,office_phone,home_phone) #========= sub pwinfo { local $username = $_[0]; unless($passwdfile) { local $passwdfile = '/etc/passwd'; } open(PW,$passwdfile); local @info = grep(/^$username:/,); return 0 unless @info; chop($info[0]); local ($name,$passwd,$id,$gid,$gcos,$home,$shell)=split(/:/,$info[0]); local @gcos=split(/,/,$gcos); $$username{'id'} = $id; $$username{'gid'} = $gid; $$username{'home'} = $home; $$username{'shell'} = $shell; $$username{'realname'} = $gcos[0]; $$username{'office'} = $gcos[1]; $$username{'office_phone'} = $gcos[2]; $$username{'home_home'} = $gcos[3]; return 1; } 1;