refactor by adding an extra "factory" class in order not to overload
things horribly. No actual functional change
This commit is contained in:
parent
17d7eeb3df
commit
2ca8bcbc63
@ -1,5 +1,5 @@
|
|||||||
#! /usr/bin/perl
|
#! /usr/bin/perl
|
||||||
# $OpenBSD: build-debug-info,v 1.45 2022/09/11 08:03:08 espie Exp $
|
# $OpenBSD: build-debug-info,v 1.46 2022/09/11 08:40:40 espie Exp $
|
||||||
# Copyright (c) 2019 Marc Espie <espie@openbsd.org>
|
# Copyright (c) 2019 Marc Espie <espie@openbsd.org>
|
||||||
#
|
#
|
||||||
# Permission to use, copy, modify, and distribute this software for any
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
@ -26,10 +26,8 @@ use lib "$ports1/infrastructure/lib";
|
|||||||
use OpenBSD::BaseFS;
|
use OpenBSD::BaseFS;
|
||||||
use OpenBSD::BasePlistReader;
|
use OpenBSD::BasePlistReader;
|
||||||
|
|
||||||
# PlistReader is "just" a specialized version of PkgCreate algorithm
|
package PlistFactory;
|
||||||
# that does mimic what PkgCreate reader does with a few specialized methods
|
our @ISA = qw(OpenBSD::BasePlistFactory);
|
||||||
package PlistReader;
|
|
||||||
our @ISA = qw(OpenBSD::BasePlistReader);
|
|
||||||
|
|
||||||
# note that contrary to update-plist, we never build the "new" plist, but
|
# note that contrary to update-plist, we never build the "new" plist, but
|
||||||
# write it on the fly (should we use nlist as well here ?)
|
# write it on the fly (should we use nlist as well here ?)
|
||||||
@ -234,11 +232,11 @@ sub new
|
|||||||
my $self = BuildDebugInfo->new;
|
my $self = BuildDebugInfo->new;
|
||||||
my $state = $self->{state};
|
my $state = $self->{state};
|
||||||
$state->{exitcode} = 0;
|
$state->{exitcode} = 0;
|
||||||
PlistReader->parse_args($self);
|
my $base = PlistFactory->parse_args($self);
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
$self->{mk} = $state->openfile($state->{pkgdir}."/Makefile.new");
|
$self->{mk} = $state->openfile($state->{pkgdir}."/Makefile.new");
|
||||||
print {$self->{mk}} << 'EOPREAMBLE';
|
print {$self->{mk}} << 'EOPREAMBLE';
|
||||||
# Makefile generated by build-debug-info $OpenBSD: build-debug-info,v 1.45 2022/09/11 08:03:08 espie Exp $
|
# Makefile generated by build-debug-info $OpenBSD: build-debug-info,v 1.46 2022/09/11 08:40:40 espie Exp $
|
||||||
# No serviceable parts
|
# No serviceable parts
|
||||||
# Intended to run under the stage area after cd ${WRKINST}
|
# Intended to run under the stage area after cd ${WRKINST}
|
||||||
|
|
||||||
@ -270,7 +268,6 @@ EOPREAMBLE
|
|||||||
$self->{linkstash} = {};
|
$self->{linkstash} = {};
|
||||||
$self->{ostash} = {};
|
$self->{ostash} = {};
|
||||||
for my $l (@{$self->{lists}}) {
|
for my $l (@{$self->{lists}}) {
|
||||||
my $base = $l->{state}{base};
|
|
||||||
$self->{empty} = 1;
|
$self->{empty} = 1;
|
||||||
$self->{dirstash} = {};
|
$self->{dirstash} = {};
|
||||||
$self->{prefix} = $base."/".$l->{state}{prefix};
|
$self->{prefix} = $base."/".$l->{state}{prefix};
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#! /usr/bin/perl
|
#! /usr/bin/perl
|
||||||
# $OpenBSD: update-plist,v 1.210 2022/09/11 08:28:21 espie Exp $
|
# $OpenBSD: update-plist,v 1.211 2022/09/11 08:40:40 espie Exp $
|
||||||
# Copyright (c) 2018 Marc Espie <espie@openbsd.org>
|
# Copyright (c) 2018 Marc Espie <espie@openbsd.org>
|
||||||
#
|
#
|
||||||
# Permission to use, copy, modify, and distribute this software for any
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
@ -1427,7 +1427,7 @@ sub try_pkglocate
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $self = UpdatePlist->new;
|
my $self = UpdatePlist->new;
|
||||||
my $base = OpenBSD::UpdatePlistReader->parse_args($self);
|
my $base = OpenBSD::UpdatePlistFactory->parse_args($self);
|
||||||
$self->known_objects;
|
$self->known_objects;
|
||||||
$self->scan_fake_dir($base);
|
$self->scan_fake_dir($base);
|
||||||
$self->zap_debug_files;
|
$self->zap_debug_files;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# $OpenBSD: BasePlistReader.pm,v 1.2 2022/09/11 08:27:21 espie Exp $
|
# $OpenBSD: BasePlistReader.pm,v 1.3 2022/09/11 08:40:41 espie Exp $
|
||||||
# Copyright (c) 2019 Marc Espie <espie@openbsd.org>
|
# Copyright (c) 2019 Marc Espie <espie@openbsd.org>
|
||||||
#
|
#
|
||||||
# Permission to use, copy, modify, and distribute this software for any
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
@ -19,6 +19,9 @@
|
|||||||
# - handling debug names mogrification
|
# - handling debug names mogrification
|
||||||
|
|
||||||
use OpenBSD::PkgCreate;
|
use OpenBSD::PkgCreate;
|
||||||
|
|
||||||
|
# PlistReader is "just" a specialized version of the PkgCreate algorithm
|
||||||
|
# which does mimic what PkgCreate reader does with a few specialized methods
|
||||||
package OpenBSD::BasePlistReader;
|
package OpenBSD::BasePlistReader;
|
||||||
our @ISA = qw(OpenBSD::PkgCreate);
|
our @ISA = qw(OpenBSD::PkgCreate);
|
||||||
|
|
||||||
@ -34,11 +37,25 @@ sub olist
|
|||||||
return $self->{olist};
|
return $self->{olist};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ... and since we will scan several plists, we build each of them through
|
||||||
|
# a factory that will repeatedly parse args and scan
|
||||||
|
package OpenBSD::BasePlistFactory;
|
||||||
|
|
||||||
|
sub stateclass
|
||||||
|
{
|
||||||
|
return 'OpenBSD::BasePlistReader::State';
|
||||||
|
}
|
||||||
|
|
||||||
|
sub readerclass
|
||||||
|
{
|
||||||
|
return 'OpenBSD::BasePlistReader';
|
||||||
|
}
|
||||||
|
|
||||||
sub process_next_subpackage
|
sub process_next_subpackage
|
||||||
{
|
{
|
||||||
my ($self, $o) = @_;
|
my ($self, $o) = @_;
|
||||||
|
|
||||||
my $r = ref($self)->new;
|
my $r = $self->readerclass->new;
|
||||||
|
|
||||||
my $s = $self->stateclass->new($self->command_name, $o->{state});
|
my $s = $self->stateclass->new($self->command_name, $o->{state});
|
||||||
$r->{state} = $s;
|
$r->{state} = $s;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#! /usr/bin/perl
|
#! /usr/bin/perl
|
||||||
# $OpenBSD: UpdatePlistReader.pm,v 1.3 2022/03/07 08:57:10 espie Exp $
|
# $OpenBSD: UpdatePlistReader.pm,v 1.4 2022/09/11 08:40:41 espie Exp $
|
||||||
# Copyright (c) 2018-2022 Marc Espie <espie@openbsd.org>
|
# Copyright (c) 2018-2022 Marc Espie <espie@openbsd.org>
|
||||||
#
|
#
|
||||||
# Permission to use, copy, modify, and distribute this software for any
|
# Permission to use, copy, modify, and distribute this software for any
|
||||||
@ -20,38 +20,23 @@ use warnings;
|
|||||||
use OpenBSD::BasePlistReader;
|
use OpenBSD::BasePlistReader;
|
||||||
use OpenBSD::ReverseSubst;
|
use OpenBSD::ReverseSubst;
|
||||||
|
|
||||||
# UpdatePlistReader is "just" a specialized version of PkgCreate algorithm
|
package OpenBSD::UpdatePlistFactory;
|
||||||
# that does mimic what PkgCreate reader does with a few specialized methods
|
our @ISA = qw(OpenBSD::BasePlistFactory);
|
||||||
package OpenBSD::UpdatePlistReader;
|
|
||||||
our @ISA = qw(OpenBSD::BasePlistReader);
|
|
||||||
|
|
||||||
use File::Path qw(make_path);
|
|
||||||
use File::Basename;
|
|
||||||
|
|
||||||
sub new
|
|
||||||
{
|
|
||||||
my $class = shift;
|
|
||||||
my $o = $class->SUPER::new;
|
|
||||||
$o->{nlist} = OpenBSD::PackingList->new;
|
|
||||||
return $o;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub stateclass
|
sub stateclass
|
||||||
{
|
{
|
||||||
return 'OpenBSD::UpdatePlistReader::State';
|
return 'OpenBSD::UpdatePlistReader::State';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub readerclass
|
||||||
|
{
|
||||||
|
return 'OpenBSD::UpdatePlistReader';
|
||||||
|
}
|
||||||
|
|
||||||
sub command_name
|
sub command_name
|
||||||
{
|
{
|
||||||
return 'update-plist';
|
return 'update-plist';
|
||||||
}
|
}
|
||||||
|
|
||||||
sub nlist
|
|
||||||
{
|
|
||||||
my $self = shift;
|
|
||||||
return $self->{nlist};
|
|
||||||
}
|
|
||||||
|
|
||||||
sub process_next_subpackage
|
sub process_next_subpackage
|
||||||
{
|
{
|
||||||
my ($class, $o) = @_;
|
my ($class, $o) = @_;
|
||||||
@ -69,6 +54,27 @@ sub process_next_subpackage
|
|||||||
$r->add_extra_info($r->olist, $r->{state});
|
$r->add_extra_info($r->olist, $r->{state});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
package OpenBSD::UpdatePlistReader;
|
||||||
|
our @ISA = qw(OpenBSD::BasePlistReader);
|
||||||
|
|
||||||
|
use File::Path qw(make_path);
|
||||||
|
use File::Basename;
|
||||||
|
|
||||||
|
sub new
|
||||||
|
{
|
||||||
|
my $class = shift;
|
||||||
|
my $o = $class->SUPER::new;
|
||||||
|
$o->{nlist} = OpenBSD::PackingList->new;
|
||||||
|
return $o;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub nlist
|
||||||
|
{
|
||||||
|
my $self = shift;
|
||||||
|
return $self->{nlist};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sub strip_prefix
|
sub strip_prefix
|
||||||
{
|
{
|
||||||
my ($self, $path) = @_;
|
my ($self, $path) = @_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user