IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 24610


Ignore:
Timestamp:
Jun 26, 2009, 3:28:02 PM (17 years ago)
Author:
jhoblitt
Message:

fwv of console-config

Location:
trunk/console
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/console/lib/Console.pm

    r24600 r24610  
    88
    99use Config::YAML;
     10use Params::Validate qw(:all);
     11
    1012
    1113sub find_rcfile
    1214{
     15    validate_pos(@_);
     16
    1317    my $rcname = "." . __PACKAGE__ . "rc";
    1418    my $rcfile;
     
    2529sub read_rcfile
    2630{
     31    validate_pos(@_, 1);
     32
    2733    my $rcfile = shift;
    2834
     
    4046}
    4147
     48sub add_host
     49{
     50    my %p = validate(@_,
     51        {
     52            config      => { isa => 'Config::YAML', },
     53            hostname    => { type => SCALAR, },
     54            console     => { type => SCALAR, },
     55         },
     56    );
     57
     58    my $c = $p{config};
     59
     60    my $hosts = $c->get_hosts;
     61    $hosts->{$p{hostname}} = { console => $p{console} };
     62    $c->set_hosts($hosts);
     63    $c->write;
     64
     65    return 1;
     66}
     67
     68sub delete_host
     69{
     70    my %p = validate(@_,
     71        {
     72            config      => { isa => 'Config::YAML', },
     73            hostname    => { type => SCALAR, },
     74         },
     75    );
     76
     77    my $c = $p{config};
     78
     79    my $hosts = $c->get_hosts;
     80    delete $hosts->{$p{hostname}};
     81    $c->set_hosts($hosts);
     82    $c->write;
     83
     84    return 1;
     85}
     86
    4287
    43881;
  • trunk/console/scripts/console-config

    r24600 r24610  
    1717    $add,
    1818    $console,
     19    $delete,
    1920    $verbose,
    2021);
     
    2324    'add|a'         => \$add,
    2425    'console|c=s'   => \$console,
     26    'delete|d'      => \$delete,
    2527    'verbose|v'     => \$verbose,
    2628) || pod2usage( 2 );
    2729
    2830my $hostname = shift @ARGV;
     31pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    2932
    3033my $rcfile = Console::find_rcfile();
     
    3235my $hosts = $c->get_hosts;
    3336
    34 unless (defined $add) {
     37if (defined $add) {
     38    go_add();
     39    exit();
     40}
     41
     42if (defined $delete) {
     43    go_delete();
     44    exit();
     45}
     46
     47# default
     48go_list();
     49exit();
     50
     51
     52sub go_list
     53{
     54    pod2usage(
     55        -msg        => "--console is meaningless in this context",
     56        -exitval    => 2,
     57    ) if defined $console;
     58
    3559    if (defined $hostname) {
    3660        die "unknown hostname: $hostname" unless exists $hosts->{$hostname}->{console};
     
    4367        }
    4468    }
    45 } else {
    46     die "--console option is required under --add" unless defined $console;
    47     $hosts->{$hostname} = { console => $console };
    48     $c->set_hosts($hosts);
    49     $c->write;
     69}
     70
     71sub go_add
     72{
     73    pod2usage(
     74        -msg        =>"--console option is required under --add",
     75        -exitval    => 2,
     76    ) unless defined $console;
     77    pod2usage(
     78        -msg        => "<hostname> option is required under --add",
     79        -exitval    => 2,
     80    ) unless defined $hostname;
     81    pod2usage(
     82        -msg        => "--add and --delete are incompatible options",
     83        -exitval    => 2,
     84    ) if defined $delete;
     85
     86    Console::add_host(config => $c, hostname => $hostname, console => $console);
     87}
     88
     89sub go_delete
     90{
     91    pod2uage(
     92        -msg        => "--console and --delete are incompatible options",
     93        -exitval    => 2,
     94    ) if defined $console;
     95    pod2uage(
     96        -msg        => "<hostname> option is required under --delete",
     97        -exitval    => 2,
     98    ) unless defined $hostname;
     99    pod2uage(
     100        -msg        => "--add and --delete are incompatible options",
     101        -exitval    => 2,
     102    ) if defined $add;
     103
     104    Console::delete_host(config => $c, hostname => $hostname);
    50105}
    51106
     
    60115=head1 SYNOPSIS
    61116
    62     console [--console <console hostname>] [--verbose] <hostname>
     117    console [--verbose] [<hostname>]
     118
     119    or
     120
     121    console [--verbose] --add --console <console hostname> <hostname>
     122
     123    or
     124
     125    console [--verbose] --delete <hostname>
    63126
    64127=head1 DESCRIPTION
Note: See TracChangeset for help on using the changeset viewer.