1#!/bin/perl
2
3#
4#  Convert GECOS information in password files to alias syntax.
5#
6#  Contributed by Kari E. Hurtta <Kari.Hurtta@ozone.fmi.fi>
7#
8
9print "# Generated from passwd by $0\n";
10
11$wordpat = '([a-zA-Z]+?[a-zA-Z0-9-]*)?[a-zA-Z0-9]';	# 'DB2'
12while (@a = getpwent) {
13    ($name,$passwd,$uid,$gid,$quota,$comment,$gcos,$dir,$shell) = @a;
14
15    ($fullname = $gcos) =~ s/,.*$//;
16
17    if (!-d $dir || !-x $shell || $shell =~ m!/bin/(false|true)$!) {
18	print "$name: root\n";				# handle pseudo user
19    }
20
21    $fullname =~ s/\.*[ _]+\.*/./g;
22    $fullname =~ tr [���������] [aaeouAAOU];  # <hakan@af.lu.se> 1997-06-15
23    next if (!$fullname || lc($fullname) eq $name);	# avoid nonsense
24    if ($fullname =~ /^$wordpat(\.$wordpat)*$/o) {	# Ulrich Windl
25	print "$fullname: $name\n";
26    } else {
27	print "# $fullname: $name\n";			# avoid strange names
28    }
29};
30
31endpwent;
32