Changeset 2424


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.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts-Web/root/html/nethosts/default.tt

    r1329 r2424  
    1212 
    1313<table border=1> 
     14[% IF (support = nethost.get_attributes('support')) %] 
     15[% osupport = c.model('Accounts').db.get_object('support', support) %] 
     16<tr><th> 
     17Support 
     18</th></tr> 
     19<tr><td> 
     20l('Support Name'): [% osupport.id | html %]<br> 
     21</td></tr> 
     22[% END %] 
     23 
    1424[% IF c.model('Accounts').db.check_acl('netzone', 'name', 'r') %] 
    1525<tr><th>Zone de cette hÃŽte</th></tr> 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Cli/Base.pm

    r2423 r2424  
    249249    } 
    250250 
     251=head3 setting 
     252 
     253    Set la-cli settings 
     254 
     255    setting: list settings 
     256    setting PARAM: show this settings 
     257    setting PARAM VALUE:  set the setting to this value 
     258    setting PARAM default: back setting to default 
     259 
     260=cut 
     261 
     262    $self->add_func( 'setting', 
     263        { 
     264            code => sub { 
     265                my ( $self, $setting, $value ) = @_; 
     266                if (! $setting ) { 
     267                    foreach $setting ( $self->Context->DefaultSetting() ) { 
     268                        $self->printf("%s (def %s): %s\n", $setting, $self->Context->DefaultSetting( $setting ), $self->Context->Setting( $setting ) ); 
     269                    } 
     270                } elsif ( $setting ) { 
     271                    if (!defined( $self->Context->DefaultSetting( $setting ) ) ) { 
     272                        $self->printf("unknown setting $setting\n"); 
     273                        return; 
     274                    } 
     275                    $self->printf("%s (def %s): %s\n", $setting, $self->Context->DefaultSetting( $setting ), $self->Context->Setting( $setting ) ); 
     276                } elsif ($value) { 
     277                    my $default = $self->Context->DefaultSetting( $setting ); 
     278                    if (!defined( $default ) ) { 
     279                        $self->printf("unknown setting $setting\n"); 
     280                        return; 
     281                    } 
     282                    $self->printf( 
     283                        "%s (def %s): %s => %s\n", 
     284                        $setting, 
     285                        $self->Context->DefaultSetting( $setting ), 
     286                        $self->Context->Setting( $setting, $value ), 
     287                        $value, 
     288                    ); 
     289                } 
     290            }, 
     291            completion => sub { 
     292                my ($self, undef, $setting, $value) = @_; 
     293                if ( ! $setting ) { 
     294                    return $self->Context->DefaultSetting(); 
     295                } 
     296            }, 
     297        } 
     298    ); 
     299 
    251300=head3 collection 
    252301 
     
    640689    my ( $self ) = @_; 
    641690 
     691    $self->Context->ReadPreferences(); 
    642692    $self->Context->ReadHistory(); 
    643     $self->Context->ReadPreferences(); 
    644693    $self->cli(); 
    645694    if (! $self->Context->WriteHistory() ) { 
  • 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.