1 package CoolStackPkg; 2 @ISA = qw(CoolStackPkgBase); 3 use strict; 4 use CoolStackPkgBase; 5 use Cwd; 6 my $cskVersion = "1.2"; 7 8 9 sub new($$$$) 10 { 11 my $pkgName = shift; 12 my $self = $pkgName->allocate(@_); 13 my ($buildDir, $packagesDir, $doSrcPacakge) = @_; 14 $self->{"_buildDir"} = $buildDir; 15 $self->{"_packagesDir"} = $packagesDir; 16 $self->{"_doSrcPackage"} = $doSrcPacakge; 17 return $self; 18 } 19 20 21 sub _translatePackages 22 { 23 my $self = shift; 24 my $workdir = getcwd(); 25 chdir "pkgdata" or die "Unable to change directory to pkgdata"; 26 my $buildDir = $self->{"_buildDir"}; 27 my $outputfile = "$workdir/$buildDir/transpkglog.txt"; 28 my $args = ""; 29 my $doSrcPackage = $self->{"_doSrcPackage"}; 30 if ($doSrcPackage) { 31 $args = "--source" 32 } 33 system("./mktranspkg.sh $args > $outputfile 2>&1"); 34 print "package translate log is present in $outputfile\n"; 35 print "\n"; 36 chdir $workdir; 37 } 38 39 sub _cleanupPackages 40 { 41 my $self = shift; 42 my @pkgList = ("apache2", "php5", "mysql32", 43 "phplibs", "ncurses", "tds" 44 ); 45 my $arch = `uname -p`; 46 chomp $arch; 47 if ("$arch" eq "i386") { 48 $arch="x86"; 49 } 50 my $packagesDir = $self->{"_packagesDir"}; 51 foreach my $comp (@pkgList) { 52 my $pkgName = "$packagesDir/CSK$comp" . "_$cskVersion" . "_$arch.pkg"; 53 if ( -e $pkgName ) { 54 print "Removing $pkgName\n"; 55 system ("rm -f $pkgName") 56 } 57 $pkgName = "$packagesDir/CSK$comp". "_$cskVersion" . "Src.pkg"; 58 if ( -e $pkgName ) { 59 print "Removing $pkgName\n"; 60 system ("rm -f $pkgName") 61 } 62 } 63 } 64 65 sub _createPackage 66 { 67 my $self = shift; 68 my ($comp) = @_; 69 my $workdir = getcwd(); 70 chdir "pkgdata/$comp" or die "Unable to change directory to pkgdata/$comp"; 71 print "Going to generate $comp package\n"; 72 my $buildDir = $self->{"_buildDir"}; 73 my $outputfile = "$workdir/$buildDir/$comp" . "_packagelog.txt"; 74 system("./mkpkg.sh > $outputfile 2>&1"); 75 print "package file output is present in $outputfile\n"; 76 print "\n"; 77 chdir $workdir; 78 } 79 80 sub createPackages 81 { 82 my $self = shift; 83 my @pkgList = ("runtime", "apache2", "php5", "mysql32", 84 "phplibs", "ncurses", "tds", 85 "mysql", "perl", 86 "memcached", "squid", "ruby", "tomcat", "lighttpd"); 87 foreach my $comp (@pkgList) { 88 $self->_createPackage($comp); 89 } 90 $self->_translatePackages(); 91 $self->_cleanupPackages(); 92 } 93 94 sub createSrcPackages 95 { 96 my $self = shift; 97 my ($srcPackagelocation) = @_; 98 my @srcPkgList = ("apache2", 99 "mysql", 100 "perl", 101 "phplibs", 102 "runtime", 103 "tds", 104 "memcached", 105 "ncurses", 106 "php5", 107 "ruby", 108 "squid", 109 "lighttpd" 110 ); 111 my $workdir = getcwd(); 112 chdir "pkgdata/" or die "Unable to change directory to pkgdata"; 113 foreach my $comp (@srcPkgList) { 114 print "Going to generate $comp source package\n"; 115 my $srcPackageDir = $srcPackagelocation; 116 if ($srcPackageDir eq "") { 117 $srcPackageDir = "$workdir" 118 } 119 120 my $buildDir = $self->{"_buildDir"}; 121 my $outputfile = "$workdir/$buildDir/$comp" . "_Srcpackagelog.txt"; 122 my $retval = 0; 123 print("./mksrcpkg.sh $srcPackageDir $comp > $outputfile\n"); 124 $retval = system("./mksrcpkg.sh $srcPackageDir $comp > $outputfile 2>&1"); 125 if ($retval != 0) { 126 print "Source package creation failed for $comp\n"; 127 } 128 } 129 chdir $workdir; 130 } 131 132 1; 133 134