Link_Controller
view release on metacpan or search on metacpan
default-install/default-install.pl view on Meta::CPAN
if ($gid) {
$members && do {
print STDERR "Group $::LC_GROUP is not empty. Not deleting\n"
if $verbose;
return ;
};
print STDERR "deleting $::LC_GROUP group\n" if $verbose;
system ( 'groupdel', $::LC_GROUP)
}
}
sub activate_users (@) {
my @users=@_;
my ($name,$passwd,$gid,$members) = getgrnam($::LC_USERS_GROUP);
unless ($gid) {
print STDERR "creating $::LC_USERS_GROUP group\n" if $verbose;
system ( 'groupadd', $::LC_USERS_GROUP );
}
print STDERR "activating given users " , join( ' ', @users) ,"\n"
if $verbose;
foreach my $user (@users) {
my $groups=`id -Gn $user`;
chomp $groups;
$groups .= " $::LC_USERS_GROUP";
$groups =~ s/ /,/g;
system ("usermod", '-G', $groups, $user);
}
}
sub deactivate_users (@) {
print STDERR "deactivating given users\n" if $verbose;
my @users=@_;
foreach $user(@users) {
#list current groups
my $groups=`id -Gn`;
die "no groups found for user $user" unless $groups;
my @groups=split(/ /, $groups);
my @newgroups=();
#delete our group
foreach my $group(@groups) {
push @newgroups, $group unless $group eq $::LC_USERS_GROUP;
}
#apply
system ( 'usermod', '-G', join (',', @newgroups), $user ) || do {
warn "couldn't activate user $user";
unlink $::DAILY_FILE or warn "couldn't unlink $::DAILY_FILE";
unlink $::WEEKLY_FILE or warn "couldn't unlink $::WEEKLY_FILE";
die "aborted due to errors";
};
}
}
sub create_workingdir () {
if (-d $::LC_DIR ) {
warn "LinkController Working directory $::LC_DIR already present";
} else {
mkpath("$::LC_DIR") or warn "working directory creation failed";
my ($login,$pass,$uid,$gid) = getpwnam($::LC_USER)
or die "$::LC_USER user not in passwd file. Can't create directory.";
chown ($uid, $gid, $::LC_DIR);
}
}
sub delete_workingdir () {
if (-d $::LC_DIR ) {
#fixme: delete even in the presence of certain dotfiles:
# .bashrc .xauth
rmdir($::LC_DIR) or warn "working directory ($::LC_DIR) deletion failed $!";
} else {
warn "LinkController Working directory $::LC_DIR not present";
}
}
( run in 0.823 second using v1.01-cache-2.11-cpan-71847e10f99 )