Archive-Ipkg

 view release on metacpan or  search on metacpan

Ipkg.pm  view on Meta::CPAN

	$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(@_);
}

Ipkg.pm  view on Meta::CPAN

    # 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",

Ipkg.pm  view on Meta::CPAN


=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

Ipkg.pm  view on Meta::CPAN

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 )