Mercurial > make_username
changeset 1:706c20861682
One more unit test to check for completely invalid base, and a minor tweak so it doesn't always append a number.
author | Eris Caffee <discordia@eldalin.com> |
---|---|
date | Sat, 16 Jul 2011 13:23:21 -0500 |
parents | b20384a94d7d |
children | 6adfd593a32b fa7be81d0e33 742a3d2c99d6 |
files | make-username.pl |
diffstat | 1 files changed, 7 insertions(+), 5 deletions(-) [+] |
line diff
1.1 --- a/make-username.pl Sat Jul 16 13:13:18 2011 -0500 1.2 +++ b/make-username.pl Sat Jul 16 13:23:21 2011 -0500 1.3 @@ -38,9 +38,13 @@ 1.4 # 1.5 # [ ! -d /var/cpanel/users ] && mkdir -p /var/cpanel/users 1.6 # touch /var/cpanel/users/testqwer 1.7 +# touch /var/cpanel/users/testabc 1.8 # i=1 ; while [ $i -lt 10 ] ; do touch /var/cpanel/users/testabc${i} ; let i=$i+1 ; done 1.9 +# touch /var/cpanel/users/testzx 1.10 # i=1 ; while [ $i -lt 100 ] ; do touch /var/cpanel/users/testzx${i} ; let i=$i+1 ; done 1.11 +# touch /var/cpanel/users/test 1.12 # i=1 ; while [ $i -lt 100 ] ; do touch /var/cpanel/users/test${i} ; let i=$i+1 ; done 1.13 +# touch /var/cpanel/users/t 1.14 # i=1 ; while [ $i -lt 10346 ] ; do touch /var/cpanel/users/t${i} ; let i=$i+1 ; done 1.15 1.16 $base = "testqwer"; 1.17 @@ -95,16 +99,14 @@ 1.18 # Delete spaces (in case the passed username candidate was short). 1.19 # Churn until we find an unused name. 1.20 my $i=1; 1.21 - my $numstr = sprintf("%d", $i); 1.22 - my $newuser = sprintf("%-8.8s", $base); 1.23 - substr($newuser, -length($numstr), length($numstr), $numstr); 1.24 - $newuser =~ s/ //g; 1.25 + my $numstr; 1.26 + my $newuser = sprintf("%.8s", $base); 1.27 while ( (-e "/var/cpanel/users/$newuser") && ($i < 10000000) ) { 1.28 - $i++; 1.29 $numstr = sprintf("%d", $i); 1.30 $newuser = sprintf("%-8s", $base); 1.31 substr($newuser, -length($numstr), length($numstr), $numstr); 1.32 $newuser =~ s/ //g; 1.33 + $i++; 1.34 } 1.35 1.36 $i == 10000000 && return undef;