138032Speter#!/bin/perl
238032Speter
338032Speter#
438032Speter#  Convert GECOS information in password files to alias syntax.
538032Speter#
638032Speter#  Contributed by Kari E. Hurtta <Kari.Hurtta@ozone.fmi.fi>
738032Speter#
838032Speter
938032Speterprint "# Generated from passwd by $0\n";
1038032Speter
1164562Sgshapiro$wordpat = '([a-zA-Z]+?[a-zA-Z0-9-]*)?[a-zA-Z0-9]';	# 'DB2'
1238032Speterwhile (@a = getpwent) {
1338032Speter    ($name,$passwd,$uid,$gid,$quota,$comment,$gcos,$dir,$shell) = @a;
1438032Speter
1538032Speter    ($fullname = $gcos) =~ s/,.*$//;
1638032Speter
1764562Sgshapiro    if (!-d $dir || !-x $shell || $shell =~ m!/bin/(false|true)$!) {
1864562Sgshapiro	print "$name: root\n";				# handle pseudo user
1938032Speter    }
2038032Speter
2138032Speter    $fullname =~ s/\.*[ _]+\.*/./g;
2264562Sgshapiro    $fullname =~ tr [���������] [aaeouAAOU];  # <hakan@af.lu.se> 1997-06-15
2364562Sgshapiro    next if (!$fullname || lc($fullname) eq $name);	# avoid nonsense
2464562Sgshapiro    if ($fullname =~ /^$wordpat(\.$wordpat)*$/o) {	# Ulrich Windl
2538032Speter	print "$fullname: $name\n";
2638032Speter    } else {
2764562Sgshapiro	print "# $fullname: $name\n";			# avoid strange names
2838032Speter    }
2938032Speter};
3038032Speter
3138032Speterendpwent;
32