Sys-Config-Manage
view release on metacpan or search on metacpan
lib/Sys/Config/Manage/Ownership.pm view on Meta::CPAN
$self->{scm}->error.'" errorString="'.$self->{scm}->errorString.'"';
$self->warn;
return undef;
}
#make sure each file asked to be synced is tracked
while(defined( $files[$int] )){
my $matched=0;
my $int2=0;
while(defined( $allfiles[$int2] )){
if( $files[$int] eq $allfiles[$int2] ){
$matched=1;
}
$int2++;
}
if(! $matched){
$self->{error}='8';
$self->{errorString}='"'.$files[$int].'" does not exist under the configuration directory, "'.$configDir.'",';
$self->warn;
return undef;
}
$int++;
}
}else{
#if we get here, no files have been specified so we do them all
@files=$self->{scm}->listConfigFiles($configDir);
if( $self->{scm}->error ){
$self->{error}='16';
$self->{errorString}='Sys::Config::Manage->listConfigFiles errored error="'.
$self->{scm}->error.'" errorString="'.$self->{scm}->errorString.'"';
$self->warn;
return undef;
}
}
#process each file
$int=0;
while( defined( $files[$int] ) ){
#get the perms for the file we will set it on
my $uid=$self->getUID( $configDir, $files[$int] );
if( $self->error ){
warn($self->{module}.' '.$method.': Sys::Config::Manage::Ownership->getUID errored');
return undef;
}
#get the perms for the file we will set it on
my $gid=$self->getGID( $configDir, $files[$int] );
if( $self->error ){
warn($self->{module}.' '.$method.': Sys::Config::Manage::Ownership->getGID errored');
return undef;
}
#try to chmod it
if(!chmod( $uid, $gid, $files[$int] )){
$self->{error}='17';
$self->{errorString}='chown( '.$uid.', '.$gid.', "'.$files[$int].'") errored';
$self->warn;
return undef;
}
$int++;
}
return 1;
}
=head2 getGID
This retrieves the GID for a file.
Two arguments are taken.The first is the configuration directory,
which if not defined is automatically chosen. The second is the
file in question.
my $gid=$foo->getGID( $configDir, $file );
if($foo->error){
warn('error:'.$foo->error.': '.$foo->errorString);
}
=cut
sub getGID{
my $self=$_[0];
my $configDir=$_[1];
my $file=$_[2];
my $method='getGID';
#blank any previous errors
if (!$self->errorblank) {
return undef;
}
#make sure we have a directory to use
if (!defined($configDir)) {
$configDir=$self->{scm}->selectConfigDir;
if ($self->{scm}->error) {
$self->{error}=5;
$self->{errorString}='Sys::Config::Manage->selectConfigDir errored error="'.
$self->{scm}->error.'" errorString="'.$self->{scm}->errorString.'"';
$self->warn;
return undef;
}
}
#make sure the config directory is valid
my $valid=$self->{scm}->validConfigDirName($configDir);
if ($self->{scm}->error) {
$self->{error}=6;
$self->{errorString}='Sys::Config::Manage->validConfigDirName errored error="'.
$self->{scm}->error.'" errorString="'.$self->{scm}->errorString.'"';
$self->warn;
return undef;
}
if (defined( $valid )) {
$self->{error}=3;
$self->{errorString}='The configuration directory name '.$valid;
( run in 1.356 second using v1.01-cache-2.11-cpan-5511b514fd6 )