Use compression-mode defined in pkgmk.conf

This commit is contained in:
Jose V Beneyto 2013-07-04 17:39:58 +02:00
parent e23dc5fb07
commit b020e2b7ec
2 changed files with 30 additions and 14 deletions

View File

@ -35,6 +35,14 @@ GetOptions("do"=>\$download_only,
"f"=>\$force, "im"=>\$ignore_md5sum, "margs=s"=>\$unused, "f"=>\$force, "im"=>\$ignore_md5sum, "margs=s"=>\$unused,
"rargs=s"=>\$unused, "r=s"=>\$root); "rargs=s"=>\$unused, "r=s"=>\$root);
# use compression-mode defined in pkgmk.conf
our $compress = "gz";
open CONFIG, "/etc/pkgmk.conf" or die "Could not open /etc/pkgmk.conf";
while (<CONFIG>) {
$compress = $1 if m/^PKGMK_COMPRESSION_MODE="(.*)"\n/;
}
close CONFIG;
if ($root) { if ($root) {
$LOCKFILE = $root.$LOCKFILE ; $LOCKFILE = $root.$LOCKFILE ;
$PKGDB = $root.$PKGDB; $PKGDB = $root.$PKGDB;
@ -156,10 +164,10 @@ sub parsepackage {
$name =~ s/\#.*$//; $name =~ s/\#.*$//;
my $version = $p[0]; my $version = $p[0];
$version =~ s/^.*\#//; $version =~ s/^.*\#//;
$version =~ s/-\w*\.pkg\.tar\.gz//; $version =~ s/-\w*\.pkg\.tar\.[gbx]z*//;
my $release = $p[0]; my $release = $p[0];
$release =~ s/^.*-//; $release =~ s/^.*-//;
$release =~ s/\.pkg\.tar\.gz//; $release =~ s/\.pkg\.tar\.[gbx]z*//;
if (not $_[2]) {$_[2] = $_[1]}; if (not $_[2]) {$_[2] = $_[1]};
$pkg{'name'} = $name; $pkg{'name'} = $name;
$pkg{'version'} = $version; $pkg{'version'} = $version;
@ -497,7 +505,7 @@ sub getdependencies {
# Download given package (if needed), check md5sum # Download given package (if needed), check md5sum
sub downloadpkg { sub downloadpkg {
my %pkg = @_; my %pkg = @_;
my $fullpath = $pkg{'path'}."/".$pkg{'name'}."#".$pkg{'version'}."-".$pkg{'release'}.".pkg.tar.gz"; my $fullpath = $pkg{'path'}."/".$pkg{'name'}."#".$pkg{'version'}."-".$pkg{'release'}.".pkg.tar.$compress";
if (-f $fullpath) { if (-f $fullpath) {
my $md5 = `md5sum $fullpath`; chomp; my $md5 = `md5sum $fullpath`; chomp;
$md5 =~ s/\s+.*$//; $md5 =~ s/\s+.*$//;
@ -538,7 +546,7 @@ sub installpkg {
if ($force){$aa = $aa."-f "}; if ($force){$aa = $aa."-f "};
if ($root) {$aa = $aa."-r ".$root." "}; if ($root) {$aa = $aa."-r ".$root." "};
if ($pkg{'pre_install'} eq "yes" and ($install_scripts or $pre_install)) {dopre(%pkg)}; if ($pkg{'pre_install'} eq "yes" and ($install_scripts or $pre_install)) {dopre(%pkg)};
my $fullpath = $pkg{'path'}."/".$pkg{'name'}."#".$pkg{'version'}."-".$pkg{'release'}.".pkg.tar.gz"; my $fullpath = $pkg{'path'}."/".$pkg{'name'}."#".$pkg{'version'}."-".$pkg{'release'}.".pkg.tar.$compress";
print "pkg-get: /usr/bin/pkgadd $upgrade$aa$fullpath\n"; print "pkg-get: /usr/bin/pkgadd $upgrade$aa$fullpath\n";
system ("/usr/bin/pkgadd $upgrade$aa$fullpath") == 0 or return 0; system ("/usr/bin/pkgadd $upgrade$aa$fullpath") == 0 or return 0;
if ($pkg{'post_install'} eq "yes" and ($install_scripts or $post_install)) {dopost(%pkg)}; if ($pkg{'post_install'} eq "yes" and ($install_scripts or $post_install)) {dopost(%pkg)};

View File

@ -16,6 +16,14 @@ use Getopt::Long;
our $title = "CRUX Packages"; our $header; our $footer; our $title = "CRUX Packages"; our $header; our $footer;
GetOptions("title=s"=>\$title, "header=s"=>\$header, "footer=s"=>\$footer); GetOptions("title=s"=>\$title, "header=s"=>\$header, "footer=s"=>\$footer);
# Use compression-mode defined in pkgmk-conf
our $compress = "gz";
open CONFIG, "/etc/pkgmk.conf" or die "Could not open /etc/pkgmk.conf";
while (<CONFIG>) {
$compress = $1 if m/^PKGMK_COMPRESSION_MODE="(.*)"\n/;
}
close CONFIG;
if ($#ARGV >= 0) { # single packages if ($#ARGV >= 0) { # single packages
pkgrepo_single(); pkgrepo_single();
pkgdeps_single(); pkgdeps_single();
@ -35,7 +43,7 @@ sub pkgdeps_single {
print "+ Generating dependencies\n"; print "+ Generating dependencies\n";
my $hasnew = 0; my $hasnew = 0;
foreach my $p (@ARGV) { foreach my $p (@ARGV) {
my @packages = glob("$p#*.pkg.tar.gz"); my @packages = glob("$p#*.pkg.tar.$compress");
if ($#packages == 0) { if ($#packages == 0) {
my $found = 0; my $found = 0;
my $package = $packages[0]; my $package = $packages[0];
@ -65,7 +73,7 @@ sub pkgrepo_single {
print "+ Generating repository\n"; print "+ Generating repository\n";
my $hasnew = 0; my $hasnew = 0;
foreach my $p (@ARGV) { foreach my $p (@ARGV) {
my @packages = glob("$p#*.pkg.tar.gz"); my @packages = glob("$p#*.pkg.tar.$compress");
if ($#packages == 0) { if ($#packages == 0) {
my $found = 0; my $found = 0;
my $package = $packages[0]; my $package = $packages[0];
@ -103,7 +111,7 @@ sub pkgrepo_single {
# generate dependencies # generate dependencies
sub pkgdeps { sub pkgdeps {
print "+ Generating dependencies\n"; print "+ Generating dependencies\n";
my @packages = glob("*#*.pkg.tar.gz"); my @packages = glob("*#*.pkg.tar.$compress");
open (my $fh, '>PKGDEPS'); open (my $fh, '>PKGDEPS');
foreach my $package (@packages) { foreach my $package (@packages) {
$package =~ s/#.*//; $package =~ s/#.*//;
@ -118,7 +126,7 @@ sub pkgdeps {
# generate the main repository file and index page # generate the main repository file and index page
sub pkgrepo { sub pkgrepo {
print "+ Generating repository\n"; print "+ Generating repository\n";
my @packages = glob("*#*.pkg.tar.gz"); my @packages = glob("*#*.pkg.tar.$compress");
our $odd = "odd"; our $odd = "odd";
my $count = 0; my $count = 0;
open (my $fh, '>PKGREPO'); open (my $fh, '>PKGREPO');
@ -141,8 +149,8 @@ sub pkgrepo {
printf $fh "%-s:%-s:%-s:%-s:%-s\n", $package,$du,$md5,$des,$flags; printf $fh "%-s:%-s:%-s:%-s:%-s\n", $package,$du,$md5,$des,$flags;
my $version = $package; my $version = $package;
$version =~ s/^.*\#//; $version =~ s/^.*\#//;
$version =~ s/\.pkg\.tar\.gz//; $version =~ s/\.pkg\.tar\.[gbx]z*//;
print $ih " <tr class=\"$odd\">"; print $ih "<tr class=\"$odd\">";
print $ih "<td>$name</td>"; print $ih "<td>$name</td>";
my $url = $package; my $url = $package;
$url =~ s/\#/\%23/; $url =~ s/\#/\%23/;
@ -162,10 +170,10 @@ sub pkgrepo {
# generate README file # generate README file
sub pkgread { sub pkgread {
print "+ Generating README\n"; print "+ Generating README\n";
my @packages = glob("*#*.pkg.tar.gz"); my @packages = glob("*#*.pkg.tar.$compress");
open (my $fh, '>PKGREAD'); open (my $fh, '>PKGREAD');
print $fh "# README files for repository. Do NOT remove this line.\n"; print $fh "# README files for repository. Do NOT remove this line.\n";
foreach my $package (@packages) { foreach my $package (@packages) {
$package =~ s/#.*//; $package =~ s/#.*//;
my $path = `prt-get path $package`; my $path = `prt-get path $package`;
$path =~ s/\n//g; $path =~ s/\n//g;
@ -192,7 +200,7 @@ sub pkginst {
# #
# PKGINST: pre-post install scripts for CRUX packages # PKGINST: pre-post install scripts for CRUX packages
"; ";
my @packages = glob("*#*.pkg.tar.gz"); my @packages = glob("*#*.pkg.tar.$compress");
foreach my $package (@packages) { foreach my $package (@packages) {
$package =~ s/#.*//; $package =~ s/#.*//;
my $path = `prt-get path $package`; my $path = `prt-get path $package`;
@ -254,7 +262,7 @@ EOH
} }
table table
{ {
border: solid #e5dccf 1px; border: solid #e5dccf 1px;
font-size: 85%; font-size: 85%;
} }
td td