Changeset 2422


Ignore:
Timestamp:
06/25/20 19:56:25 (4 years ago)
Author:
nanardon
Message:

la-cli, improve prompt, add clone()

Location:
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Cli
Files:
2 edited

Legend:

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

    r2420 r2422  
    498498        return $self; 
    499499    } 
     500} 
     501 
     502sub Traverse { 
     503    my ( $self, $Before, $After ) = @_; 
     504 
     505    $Before->($self) if ($Before); 
     506    if ($self->Parent) { 
     507        $self->Parent->Traverse($Before, $After); 
     508    } 
     509    $After->($self) if ($After); 
    500510} 
    501511 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Cli/Object.pm

    r2421 r2422  
    153153        }, 
    154154    }); 
     155 
     156=head3 clone 
     157 
     158Create sub envirronment with same list of object 
     159 
     160=cut 
     161 
     162    $self->add_func('clone', { 
     163        code => sub { 
     164            my ($self) = @_; 
     165            my $totype = $self->{_otype}; 
     166 
     167            LATMOS::Accounts::Cli::Object->new( 
     168                Parent  => $self, 
     169                Context => $self->Context, 
     170                otype   => $totype, 
     171                objs    => [ @{ $self->{_objects} } ], 
     172            )->cli(); 
     173        }, 
     174    } ); 
    155175 
    156176    $self->add_func('sort', { 
     
    440460 
    441461            my $env = shift; 
     462            my @allargs = @_; 
    442463            my @args = $self->getoption( 
    443464                { 
    444465                    'fmt=s'      => \my $fmt, 
    445466                    'filefmt=s'  => \my $filefmt, 
    446                 }, @_ 
     467                    'r'          => \my $recur, 
     468                }, @allargs 
    447469            ); 
     470 
     471            if ($recur) { 
     472                $self->Traverse( undef, sub { 
     473                    $_[0]->Parent or return; 
     474                    $_[0]->run('list', grep { $_ ne '-r' } @allargs); 
     475                } ); 
     476                return; 
     477            } 
    448478 
    449479            if ($filefmt){ 
     
    894924    my ($self) = @_; 
    895925 
     926    my @otypes; 
     927 
     928    $self->Traverse( undef, sub { push(@otypes, $_[0]->otype) if($_[0]->Parent) } ); 
    896929    sprintf("%s %s/%s", 
    897930        $self->base->label, 
    898         $self->otype, 
     931        join('/', @otypes), 
    899932        @{$self->objs} > 1 
    900933            ? '(' . scalar(@{$self->objs}) . ' obj.)' 
Note: See TracChangeset for help on using the changeset viewer.