mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-04 05:12:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env perl
 | 
						|
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
 | 
						|
 | 
						|
# Just like xcatclient, but needs to read a file in and pass it as $request->data
 | 
						|
 | 
						|
BEGIN { $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : -d '/opt/xcat' ? '/opt/xcat' : '/usr'; }
 | 
						|
use lib "$::XCATROOT/lib/perl";
 | 
						|
use File::Basename;
 | 
						|
use xCAT::Client;
 | 
						|
use xCAT::Utils;
 | 
						|
 | 
						|
use Getopt::Long;
 | 
						|
 | 
						|
sub usage {
 | 
						|
    print "Usage: tabrestore <tablename>.csv\n";
 | 
						|
    print "       tabrestore -a <tablename>.csv\n";
 | 
						|
    print "       tabrestore [-?|-h|--help]\n";
 | 
						|
    print "       tabrestore [-v|--version]\n";
 | 
						|
    exit $_[0];
 | 
						|
}
 | 
						|
 | 
						|
#my $bname = basename($0);
 | 
						|
my $cmdref;
 | 
						|
$cmdref->{command}->[0] = "tabrestore";
 | 
						|
 | 
						|
# Get the options
 | 
						|
my $HELP;
 | 
						|
if (
 | 
						|
    !GetOptions(
 | 
						|
        'h|?|help'  => \$HELP,
 | 
						|
        'v|version' => \$VERSION,
 | 
						|
        'a|addrows' => \$ADDROWS,
 | 
						|
    )
 | 
						|
  )
 | 
						|
{ usage(1); }
 | 
						|
 | 
						|
my $arg = shift(@ARGV);
 | 
						|
while ($arg =~ /^-/) {
 | 
						|
    push(@{ $cmdref->{arg} }, $arg);
 | 
						|
    $arg = shift(@ARGV);
 | 
						|
}
 | 
						|
if ($VERSION)
 | 
						|
{
 | 
						|
    my $version = xCAT::Utils->Version();
 | 
						|
    print "$version\n";
 | 
						|
    exit 0;
 | 
						|
}
 | 
						|
if ($HELP)
 | 
						|
{
 | 
						|
    usage;
 | 
						|
}
 | 
						|
if ($ADDROWS)
 | 
						|
{
 | 
						|
    $cmdref->{addrows}->[0] = "yes";
 | 
						|
}
 | 
						|
 | 
						|
unless ($arg) { usage(2); }    # no filename specified
 | 
						|
 | 
						|
# Open the specified table file and put its contents in the data key
 | 
						|
my $filename = $arg;
 | 
						|
my $tabname  = basename($filename);
 | 
						|
$tabname =~ s/\..*//;
 | 
						|
$cmdref->{table}->[0] = $tabname;
 | 
						|
my $fh;
 | 
						|
unless (open($fh, $filename)) { print "Error: Unable to open $arg for reading.\n"; exit 3; }
 | 
						|
while (<$fh>) {
 | 
						|
    push @{ $cmdref->{data} }, $_;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
xCAT::Client::submit_request($cmdref, \&xCAT::Client::handle_response);
 | 
						|
exit $xCAT::Client::EXITCODE;
 | 
						|
 |