#!perl

HELP1 "adduser <name>" => "Create an account";

sub command :Tab(adduser) ($self, $cart, $command, @) {
    $command eq 'adduser' or return NEXT;

    if ($cart->size) {
        return ABORT, "Create the account *before* scanning things.";
    }

    return "Name for the new account", \&username;
}

sub username($self, $cart, $name, @) {
    return REJECT, "Sorry, whitespace is not allowed."
        if $name =~ /\s/;

    return REJECT, "Sorry, invalid first character."
        if $name =~ /^[-+*]/;

    return REJECT, "That's too numeric to be a user name."
        if defined parse_amount($name);

    return REJECT, "That name already exists."
        if defined parse_user($name);

    RevBank::Users::create( $name );

    return ACCEPT;
}