Ignore:
Timestamp:
06/26/20 10:04:24 (4 years ago)
Author:
nanardon
Message:

Add setting command to la-cli

By the way this patch add a limit to history.

File:
1 edited

Legend:

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

    r2423 r2424  
    6161    my $OUT = \*STDOUT; 
    6262 
    63     $term->ReadHistory( _historyFile() ); 
    64  
    6563    return $class->$orig( Out => $OUT, Term => $term, @_ ); 
    6664 
     
    8785        $self->Preferences( YAML::LoadFile( _preferenceFile() ) ); 
    8886    } 
     87     
     88    $self->ApplySetting(); 
    8989} 
    9090 
     
    9393 
    9494    YAML::DumpFile( _preferenceFile(), $self->Preferences() ); 
     95} 
     96 
     97sub DefaultSetting { 
     98    my ( $self, $setting ) = @_; 
     99 
     100    my $defaults = { 
     101        'historysize' => 1000, 
     102    }; 
     103    if ($setting) { 
     104        return $defaults->{ $setting }; 
     105    } else { 
     106        return sort keys %{ $defaults }; 
     107    } 
     108} 
     109 
     110sub ApplySetting { 
     111    my ( $self ) = @_; 
     112 
     113    $self->Term->StifleHistory( $self->Setting('historysize') ); 
     114} 
     115 
     116sub Setting { 
     117    my ( $self, $setting, $value ) = @_; 
     118 
     119    my $oldvalue = defined($self->Preferences->{settings}{ $setting }) 
     120        ? $self->Preferences->{settings}{ $setting } : $self->DefaultSetting( $setting ); 
     121 
     122    if (defined($value)) { 
     123        if ($value eq 'default') { 
     124            delete($self->Preferences->{settings}{ $setting }); 
     125        } else { 
     126            $self->Preferences->{settings}{ $setting } = $value; 
     127        } 
     128 
     129        $self->ApplySetting(); 
     130    } 
     131 
     132    return ($oldvalue); 
    95133} 
    96134 
Note: See TracChangeset for help on using the changeset viewer.