Ignore:
Timestamp:
02/22/19 02:06:48 (5 years ago)
Author:
nanardon
Message:

Allow to function on top env (/func)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Cli/Base.pm

    r2216 r2217  
    269269sub print { shift->Context->print(@_) } 
    270270 
     271sub Top { 
     272    my ( $self ) = @_; 
     273 
     274    if ($self->Parent) { 
     275        return $self->Parent->Top; 
     276    } else { 
     277        return $self; 
     278    } 
     279} 
     280 
    271281=head2 cli 
    272282 
     
    380390    my ($self, $lastw, $name, @args) = @_; 
    381391    if (!$name) { 
    382         if ($lastw =~ m!^\.\./?(.*)$!) { 
     392        if ($lastw =~ m!^(\.\./*)(.*)$!) { 
    383393            if ($self->Parent) { 
    384                 return map { "../$_" } $self->Parent->complete($1, $name, @args); 
     394                return map { "$1/$_" } $self->Parent->complete($2, $name, @args); 
    385395            } else { 
    386396                return (); 
    387397            } 
     398        } elsif ($lastw =~ m!(^/+)(.*)$!) { 
     399            return map { "$1$_" } $self->Top->complete($2, $name, @args); 
    388400        } else { 
    389401            return grep { /^\Q$lastw\E/ } sort 
    390402                (keys %{ $self->{funcs} || {}}); 
    391403        } 
    392     } elsif ($name =~ m!^../(.*)$!) { 
     404    } elsif ($name =~ m!^\.\./(.*)$!) { 
    393405        if ($self->Parent) { 
    394406            return $self->Parent->complete($lastw, $1, @args); 
     
    396408            return (); 
    397409        } 
     410    } elsif ($name =~ m!^/+(.*)$!) { 
     411        return $self->Top->complete($lastw, $1, @args); 
    398412    } elsif ($self->{funcs}{$name}{alias}) { 
    399413        $self->complete($lastw, @{$self->{funcs}{$name}{alias}}, @args); 
     
    415429    return if (!$name); 
    416430 
    417     if ($name =~ m!^../(.*)$!) { 
     431    if ($name =~ m!^\.\./+(.*)$!) { 
    418432        if ($self->Parent) { 
    419433            $self->Parent->run($1, @args); 
     
    421435            $self->print("No parent envirronment to call function\n"); 
    422436        } 
     437    } elsif ($name =~ m!^/+(.*)$!) { 
     438        $self->Top->run($1, @args); 
    423439    } elsif (grep { m/^(-h|--help)$/ } @args) { 
    424440        $self->Help($name); 
Note: See TracChangeset for help on using the changeset viewer.