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 )