# HG changeset patch # User Eris Caffee # Date 1310840601 18000 # Node ID 706c20861682d2f1885cc435fd9919fc9d83e914 # Parent b20384a94d7d633336597d6100c520e41e860dda One more unit test to check for completely invalid base, and a minor tweak so it doesn't always append a number. diff -r b20384a94d7d -r 706c20861682 make-username.pl --- a/make-username.pl Sat Jul 16 13:13:18 2011 -0500 +++ b/make-username.pl Sat Jul 16 13:23:21 2011 -0500 @@ -38,9 +38,13 @@ # # [ ! -d /var/cpanel/users ] && mkdir -p /var/cpanel/users # touch /var/cpanel/users/testqwer +# touch /var/cpanel/users/testabc # i=1 ; while [ $i -lt 10 ] ; do touch /var/cpanel/users/testabc${i} ; let i=$i+1 ; done +# touch /var/cpanel/users/testzx # i=1 ; while [ $i -lt 100 ] ; do touch /var/cpanel/users/testzx${i} ; let i=$i+1 ; done +# touch /var/cpanel/users/test # i=1 ; while [ $i -lt 100 ] ; do touch /var/cpanel/users/test${i} ; let i=$i+1 ; done +# touch /var/cpanel/users/t # i=1 ; while [ $i -lt 10346 ] ; do touch /var/cpanel/users/t${i} ; let i=$i+1 ; done $base = "testqwer"; @@ -95,16 +99,14 @@ # Delete spaces (in case the passed username candidate was short). # Churn until we find an unused name. my $i=1; - my $numstr = sprintf("%d", $i); - my $newuser = sprintf("%-8.8s", $base); - substr($newuser, -length($numstr), length($numstr), $numstr); - $newuser =~ s/ //g; + my $numstr; + my $newuser = sprintf("%.8s", $base); while ( (-e "/var/cpanel/users/$newuser") && ($i < 10000000) ) { - $i++; $numstr = sprintf("%d", $i); $newuser = sprintf("%-8s", $base); substr($newuser, -length($numstr), length($numstr), $numstr); $newuser =~ s/ //g; + $i++; } $i == 10000000 && return undef;