Changeset 210 for client/trunk/bin


Ignore:
Timestamp:
12/28/10 18:44:52 (14 years ago)
Author:
nanardon
Message:
  • add management option
File:
1 edited

Legend:

Unmodified
Added
Removed
  • client/trunk/bin/sophie

    r187 r210  
    77use Pod::Usage; 
    88use Config::General; 
     9use File::Temp; 
    910 
    1011GetOptions( 
     
    1617    'd=s' => \my @options, 
    1718    'daemon' => \my $daemon, 
     19 
     20    # Command option: 
     21    'set-password=s' => \my $password, 
     22    'edit-var=s'       => \my $data, 
    1823) or pod2usage; 
    1924 
     
    3439} 
    3540 
     41my $sc = Sophie::Client->new( 
     42    server => $url, 
     43    login => $login, 
     44    password => $pass, 
     45    type => $type, 
     46); 
     47 
     48if ($password) { 
     49    my $res = $sc->send_request('user.set_password', $password); 
     50    if (ref $res && !$res->is_fault) { 
     51        print $res->value . "\n"; 
     52        exit(0); 
     53    } else { 
     54        print( (ref $res ? $res->string : $res) . "\n"); 
     55        exit(1); 
     56    } 
     57} elsif ($data) { 
     58    my $res = $sc->send_request('user.dumpdata', $data); 
     59    if (ref $res && !$res->is_fault) { 
     60        my $tmp = File::Temp->new(); 
     61        print $tmp $res->value . "\n"; 
     62        close($tmp); 
     63        system($ENV{EDITOR} || 'vi', $tmp->filename); 
     64        if (open(my $fh, '<', $tmp->filename)) { 
     65            my $string = join('', <$fh>); 
     66            close($fh); 
     67            unlink($tmp->filename); 
     68            my $res2 = $sc->send_request('user.loaddata', $data, $string); 
     69            if (ref $res2 && !$res2->is_fault) { 
     70                print $res2->value . "\n"; 
     71                exit(0); 
     72            } else { 
     73                print( (ref $res2 ? $res2->string : $res2) . "\n"); 
     74                exit(1); 
     75            } 
     76        } 
     77    } else { 
     78        print( (ref $res ? $res->string : $res) . "\n"); 
     79        exit(1); 
     80    } 
     81} 
     82 
    3683if ($daemon) { 
    3784    my $pid = fork(); 
     
    4794} 
    4895 
    49 my $sc = Sophie::Client->new( 
    50     server => $url, 
    51     login => $login, 
    52     password => $pass, 
    53     type => $type, 
    54 ); 
    55  
    5696$sc->run; 
Note: See TracChangeset for help on using the changeset viewer.