Subject: | ENHANCEMENT: Hpux.pm |
Hi,
See attached Hpux.pm for HP-ux OS.
BR,
Jan Klepek
Subject: | Hpux.pm |
package Sys::Filesystem::Hpux;
# vim:ts=4:sw=4:tw=78
use strict;
use FileHandle;
use Carp qw(croak);
use vars qw($VERSION);
$VERSION = '1.05' || sprintf('%d', q$Revision: 364 $ =~ /(\d+)/g);
sub new {
ref(my $class = shift) && croak 'Class name required';
my %args = @_;
my $self = { };
# Defaults
$args{fstab} ||= '/etc/fstab';
$args{mtab} ||= '/etc/mnttab';
$args{xtab} ||= '/etc/xtab';
# Default fstab and mtab layout
my @keys = qw(fs_spec fs_file fs_vfstype fs_mntops fs_freq fs_passno);
my @special_fs = qw(swap proc);
# Read the fstab
my $fstab = new FileHandle;
if ($fstab->open($args{fstab})) {
while (<$fstab>) {
next if /^\s*#/;
next if /^\s*$/;
my @vals = split(/\s+/, $_);
$self->{$vals[1]}->{mount_point} = $vals[1];
$self->{$vals[1]}->{device} = $vals[0];
$self->{$vals[1]}->{unmounted} = 1;
$self->{$vals[1]}->{special} = 1 if grep(/^$vals[2]$/,@special_fs);
for (my $i = 0; $i < @keys; $i++) {
$self->{$vals[1]}->{$keys[$i]} = $vals[$i];
}
}
$fstab->close;
}
# Read the mtab
my $mtab = new FileHandle;
if ($mtab->open($args{mtab})) {
while (<$mtab>) {
next if /^\s*#/;
next if /^\s*$/;
my @vals = split(/\s+/, $_);
delete $self->{$vals[1]}->{unmounted} if exists $self->{$vals[1]}->{unmounted};
$self->{$vals[1]}->{mounted} = 1;
$self->{$vals[1]}->{mount_point} = $vals[1];
$self->{$vals[1]}->{device} = $vals[0];
for (my $i = 0; $i < @keys; $i++) {
$self->{$vals[1]}->{$keys[$i]} = $vals[$i];
}
}
$mtab->close;
}
bless($self,$class);
return $self;
}
1;