blob: 0f3f0bcc6497f2b6f6b73cf6821f01847bb6925c (
plain)
- #!/usr/bin/perl -t
- # Add a user to the system wide wikilist.
- # This script can safely be made suid.
- use warnings;
- use strict;
- use English;
- my $username=getpwuid($REAL_USER_ID);
- if (! defined $username || ! length $username) {
- die "unable to determine user name for UID $REAL_USER_ID\n";
- }
- my $wikilist="/etc/ikiwiki/wikilist";
- if (! -e $wikilist) {
- die "$wikilist does not exist\n";
- }
- my $removed=0;
- my @lines;
- open (my $list, "<$wikilist") || die "read $wikilist: $!";
- while (<$list>) {
- chomp;
- if (/^\s*([^\s]+)\s*$/) {
- my $user=$1;
- if ($user eq $username) {
- $removed=1;
- }
- else {
- push @lines, $_;
- }
- }
- else {
- push @lines, $_;
- }
- }
- close $list || die "error reading $list: $!";
- open ($list, ">$wikilist") || die "write $wikilist: $!";
- foreach (@lines) {
- print $list "$_\n";
- }
- if ($removed) {
- print "removed user $username from $wikilist\n";
- }
- else {
- print $list "$username\n";
- print "added user $username to $wikilist\n";
- }
- close $list || die "error writing $list: $!";
|