Archive-Ipkg
view release on metacpan or search on metacpan
$self->{version} = "";
} else {
$self->{version} = undef;
}
return $self->{version};
}
# verification
sub verify {
my $self = shift;
my $verify = undef;
# required: package, version, architecture, maintainer, section, description
$verify .= "No package name\n" unless (defined $self->{name});
# version should be at least empty
$verify .= "No version\n" unless (defined $self->{architecture});
$verify .= "No architecture\n" unless (defined $self->{architecture});
$verify .= "No maintainer\n" unless (defined $self->{maintainer});
$verify .= "No section\n" unless (defined $self->{section});
$verify .= "No description\n" unless (defined $self->{description});
return $verify;
}
# file handling
sub add_files {
my $self = shift;
return $self->{TAR_DATA}->add_files(@_);
}
# start empty lines with space and .
$desc =~ s/\n \n/\n .\n/g;
$control .= "Description: $desc\n";
return $control;
}
sub data {
my $self = shift;
return undef if $self->verify;
# make control package
$self->{TAR_CONTROL} = Archive::Tar->new();
$self->{TAR_CONTROL}->add_data("./control", $self->control, { mode => 0100644 });
foreach (qw(preinst postinst prerm postrm)) {
$self->{TAR_CONTROL}->add_data("./$_", $self->{$_},
{mode => 0100755}) if (defined $self->{$_});
}
$self->{TAR_CONTROL}->add_data("./conffiles",
=head2 WRITING THE PACKAGE
=over 4
=item C<$ctl = $ipkg-E<gt>control()>
Returns the text of the control file that will be written. You just need this
if you want to check the file.
=item C<$errmsg = $ipkg-E<gt>verify()>
Verifies whether the archive can be written by checking whether at least the
required properties are set (see below).
Returns an error message if unsuccessful, else undef (!).
=item C<$ipkg-E<gt>write()>
Writes the archive to disk, in the current directory. If no filename is given,
it uses the internally generated default filename (see filename property).
You can either set a filename of your own before writing or combine the default
make your C<write> fail if you set an invalid value.
Except of C<sloppy_checks> and C<strict_checks>, all the following functions
will return undef if a new value is set and the syntax check fails, else
the properties (new) value.
=over 4
=item C<$ipkg-E<gt>sloppy_checks>
Will switch of all syntax checks in accessor functions. C<verify> will still
check whether all required properties are set.
=item C<$ipkg-E<gt>strict_checks>
Re-enables syntax checks in accessor functions (this is the default).
=item C<$ipkg-E<gt>architecture("arch")>
The architecture the module is supposed to work on. Currently either C<arm>
or C<all>
t/2_properties.t view on Meta::CPAN
my $script = "#!/bin/sh\necho 'I am weird'\nexit 0";
my $ipkg = Archive::Ipkg->new();
ok(defined $ipkg, "Constructor");
$ipkg->sloppy_checks;
# required: package, version, architecture, maintainer, section, description
ok(defined $ipkg->verify, "Verify 1");
ok(!defined $ipkg->filename, "No default filename");
# name
ok (!defined $ipkg->name, "No default name");
ok($ipkg->name($name) eq $name, "Setting name");
ok(defined $ipkg->verify, "Verify 2");
ok(defined $ipkg->filename, "Filename available after setting name");
# section
ok($ipkg->section eq $ipkg->default_section, "Reading default section");
ok($ipkg->section($section) eq $section, "Setting section");
ok(defined $ipkg->verify, "Verify 4");
# version
ok($ipkg->version eq $ipkg->default_version, "Reading default version");
ok($ipkg->version($version) eq $version, "Setting version");
ok(defined $ipkg->verify, "Verify 5");
# architecture
ok($ipkg->architecture eq $ipkg->default_architecture, "Reading default architecture");
ok($ipkg->architecture($architecture) eq $architecture, "Setting architecture");
ok(defined $ipkg->verify, "Verify 6");
# maintainer
ok(!defined $ipkg->maintainer, "No default maintainer");
ok($ipkg->maintainer($maintainer) eq $maintainer, "Setting maintainer");
ok(defined $ipkg->verify, "Verify 7");
# description
ok(!defined $ipkg->description, "No default description");
ok($ipkg->description($description) eq $description, "Setting description");
ok(!defined $ipkg->verify, "Successful verify");
# optional priorities
# priority
ok($ipkg->priority eq $ipkg->default_priority, "Reading default priority");
ok($ipkg->priority($priority) eq $priority, "Setting priority");
# depends
ok(!defined $ipkg->depends, "No default depends");
ok($ipkg->depends($depends) eq $depends, "Setting depends");
( run in 0.639 second using v1.01-cache-2.11-cpan-39bf76dae61 )