mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 11:22:27 +00:00 
			
		
		
		
	git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| #!/usr/bin/perl
 | |
| use strict;
 | |
| use Getopt::Long;
 | |
| 
 | |
| $::XCATROOT = "";
 | |
| GetOptions('web' => \$::HTML,
 | |
| 	   'h|help' => \$::HELP);
 | |
| 
 | |
| if($::HELP){
 | |
| 	print "$0 --help  prints this help message\n";
 | |
| 	print "$0         prints attributes with nodes\n";
 | |
| 	print "$0 --html  prints attributes with nodes with html parameters\n\n" ;
 | |
| 	exit 0;
 | |
| }
 | |
| 
 | |
| 
 | |
| if(-f "/etc/sysconfig/xcat"){
 | |
| 	$::XCATROOT=`awk -F= '{print \$2}' /etc/sysconfig/xcat`;
 | |
| 	chomp($::XCATROOT);
 | |
| 	if($::XCATROOT eq ""){
 | |
| 		print "XCATROOT not defined in /etc/sysconfig/xcat!\n";
 | |
| 		exit;
 | |
| 	}
 | |
| }else{
 | |
| 	print "file /etc/sysconfig/xcat doesn't exist\n";
 | |
| 	exit;
 | |
| }
 | |
| #print "$::XCATROOT\n";
 | |
| my $f = "$::XCATROOT/etc/nodelist.tab";	
 | |
| unless(-f "$f"){
 | |
| 	print "$f doesn't exist!\n";
 | |
| 	exit 1;
 | |
| }
 | |
| my $nh;
 | |
| open(FILE, "$f") or die "can't open $f!";
 | |
| while(my $line = <FILE>){
 | |
| 	chomp $line;
 | |
| 	# skip lines that start with # or with a space and then #
 | |
| 	if($line =~ /^\s*#/){ next; }
 | |
| 	
 | |
| 	# skip lines that are blank
 | |
| 	if($line =~ /^$/){ next; }
 | |
| 
 | |
| 	my ($node,$attrs) = split(/\s+/, $line);
 | |
| 	#print "$node\n";
 | |
| 	my @attrs = split(/,/, $attrs);
 | |
| 	foreach my $a (@attrs){
 | |
| 		#print "$a\n";
 | |
| 		if($a ne ""){
 | |
| 			push @{$nh->{$a}}, $node;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| if($::HTML){ print "<ul id='nodelist'>\n"; }
 | |
| foreach (sort keys %$nh){
 | |
| 	if($::HTML){
 | |
| 		print "<li>$_\n";
 | |
| 		print "<ul>\n";
 | |
| 		foreach(sort @{$nh->{$_}}){
 | |
| 			print "<li>$_</li>\n";
 | |
| 		}
 | |
| 		print "</ul></li>\n";
 | |
| 
 | |
| 	}else{
 | |
| 		print $_ . ":\n";
 | |
| 		foreach(@{$nh->{$_}}){
 | |
| 			print "\t$_\n";
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| if($::HTML){ print "</ul>\n"; }
 |