]> git.proxmox.com Git - dab.git/commitdiff
refactor/cleanup constructor
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 21 Oct 2022 11:33:36 +0000 (13:33 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 21 Oct 2022 11:36:44 +0000 (13:36 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
DAB.pm

diff --git a/DAB.pm b/DAB.pm
index 668a044ce8b183f4be788164de7217740b5c8e79..76b64c3a0ff00a9b72131526e1a579485dcfbc2e 100644 (file)
--- a/DAB.pm
+++ b/DAB.pm
@@ -525,24 +525,18 @@ sub new {
     my ($class, $config) = @_;
 
     $class = ref ($class) || $class;
-
-    my $self = {};
-
     $config = read_config ('dab.conf') if !$config;
 
-    $self->{config} = $config;
-
+    my $self = {
+       config => $config,
+    };
     bless $self, $class;
 
     $self->{logfile} = "logfile";
-    $self->{logfd} = IO::File->new (">>$self->{logfile}") ||
-       die "unable to open log file";
-
-    my $arch = $config->{architecture};
-    die "no 'architecture' specified\n" if !$arch;
+    $self->{logfd} = IO::File->new (">>$self->{logfile}") || die "unable to open log file";
 
-    die "unsupported architecture '$arch'\n" 
-       if $arch !~ m/^(i386|amd64)$/;
+    my $arch = $config->{architecture} ||die "no 'architecture' specified\n";
+    die "unsupported architecture '$arch'\n" if $arch !~ m/^(i386|amd64)$/;
 
     my $suite = $config->{suite} || die "no 'suite' specified\n";
 
@@ -551,21 +545,18 @@ sub new {
     $config->{ostype} = $suiteinfo->{ostype};
 
     my $name = $config->{name} || die "no 'name' specified\n";
+    $name =~ m/^[a-z][0-9a-z\-\*\.]+$/ || die "illegal characters in name '$name'\n";
 
-    $name =~ m/^[a-z][0-9a-z\-\*\.]+$/ || 
-       die "illegal characters in name '$name'\n";
-
+    # assert required dab.conf keys exist
+    for my $key (qw(version section headline maintainer)) {
+       die "no '$key' specified\n" if !$config->{$key};
+    }
     my $version = $config->{version};
-    die "no 'version' specified\n" if !$version;
-    die "no 'section' specified\n" if !$config->{section};
-    die "no 'description' specified\n" if !$config->{headline};
-    die "no 'maintainer' specified\n" if !$config->{maintainer};
 
     if ($name =~ m/^$config->{ostype}/) {
        $self->{targetname} = "${name}_${version}_$config->{architecture}";
     } else {
-       $self->{targetname} = "$config->{ostype}-${name}_" .
-           "${version}_$config->{architecture}";
+       $self->{targetname} = "$config->{ostype}-${name}_${version}_$config->{architecture}";
     }
 
     if (!$config->{source}) {
@@ -640,9 +631,7 @@ sub new {
            die "syntax error in mirror spezification '$m'\n";
        }
     }
-
     $self->{sources} = $sources;
-
     $self->{infodir} = "info";
 
     $self->__allocate_ve();
@@ -650,12 +639,9 @@ sub new {
     $self->{cachedir} = ($config->{cachedir} || 'cache')  . "/$suite";;
 
     my $incl = [qw (less ssh openssh-server logrotate)];
-
     my $excl = [qw (modutils reiserfsprogs ppp pppconfig pppoe pppoeconf nfs-common mtools ntp)];
 
-    # ubuntu has too many dependencies on udev, so
-    # we cannot exclude it (instead we disable udevd)
-
+    # ubuntu has too many dependencies on udev, so we cannot exclude it (instead we disable udevd)
     if (lc($suiteinfo->{origin}) eq 'ubuntu' && $suiteinfo->{flags}->{systemd}) {
        push @$incl, 'isc-dhcp-client';
        push @$excl, qw(libmodule-build-perl libdrm-common libdrm2 libplymouth5 plymouth plymouth-theme-ubuntu-text powermgmt-base);