Added support for INCLUDE tag for otherpkgs in Postage.pm. Need to handle INCLUDE and subdir for other packagers in genimage later
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@3686 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
		| @@ -6,6 +6,7 @@ use xCAT::NodeRange; | ||||
| use xCAT::Utils; | ||||
| use xCAT::SvrUtils; | ||||
| use Data::Dumper; | ||||
| use File::Basename; | ||||
| use strict; | ||||
| BEGIN | ||||
| { | ||||
| @@ -280,8 +281,21 @@ sub makescript { | ||||
|         } | ||||
|         close(FILE1); | ||||
|       }  | ||||
|       if ( @otherpkgs > 0) {  | ||||
|         push @scriptd, "OTHERPKGS=". join(',',@otherpkgs) . " \n"; | ||||
|       if ( @otherpkgs > 0) { | ||||
|         my $pkgtext=join(',',@otherpkgs); | ||||
|        | ||||
|         #handle the #INLCUDE# tag recursively | ||||
|         my $idir = dirname($pkglist); | ||||
|         my $doneincludes=0; | ||||
| 	while (not $doneincludes) { | ||||
| 	    $doneincludes=1; | ||||
| 	    if ($pkgtext =~ /#INCLUDE:[^#]+#/) { | ||||
| 		$doneincludes=0; | ||||
| 		$pkgtext =~ s/#INCLUDE:([^#]+)#/includefile($1,$idir)/eg; | ||||
| 	    } | ||||
| 	} | ||||
|   | ||||
|         push @scriptd, "OTHERPKGS=$pkgtext\n"; | ||||
|         push @scriptd, "export OTHERPKGS\n"; | ||||
|  | ||||
|         if (-r "/install/post/otherpkgs/$os/$arch/repodata/repomd.xml") { | ||||
| @@ -328,6 +342,37 @@ sub makescript { | ||||
|   return @scriptd; | ||||
| } | ||||
|  | ||||
|  | ||||
| #---------------------------------------------------------------------------- | ||||
|  | ||||
| =head3   includefile | ||||
|  | ||||
|         handles #INCLUDE# in otherpkg.pkglist file | ||||
| =cut | ||||
|  | ||||
| #----------------------------------------------------------------------------- | ||||
| sub includefile | ||||
| { | ||||
|    my $file = shift; | ||||
|    my $idir = shift; | ||||
|    my @text = (); | ||||
|    unless ($file =~ /^\//) { | ||||
|        $file = $idir."/".$file; | ||||
|    } | ||||
|     | ||||
|    open(INCLUDE,$file) || \ | ||||
|        return "#INCLUDEBAD:cannot open $file#"; | ||||
|     | ||||
|    while(<INCLUDE>) { | ||||
|        chomp($_); | ||||
|        push(@text, $_); | ||||
|    } | ||||
|     | ||||
|    close(INCLUDE); | ||||
|     | ||||
|    return join(',', @text); | ||||
| } | ||||
|  | ||||
| #---------------------------------------------------------------------------- | ||||
|  | ||||
| =head3   getnodesetstate | ||||
|   | ||||
		Reference in New Issue
	
	Block a user