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;