File: Foo.pm

package info (click to toggle)
libalien-build-perl 2.84-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,116 kB
  • sloc: perl: 10,350; ansic: 134; sh: 66; makefile: 2
file content (44 lines) | stat: -rw-r--r-- 912 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package Alien::Build::Plugin::Fetch::Foo;

use strict;
use warnings;
use Alien::Build::Plugin;

has '+versions' => undef;

sub init
{
  my($self, $meta) = @_;
  $meta->register_hook(
    probe => sub { 'share' },
  );
  $meta->prop->{start_url} = 'file://localhost/';
  $meta->register_hook(
    fetch => sub {
      my($build, $url) = @_;
      $build->log("url = @{[ $url || 'undef' ]}");
      if(defined $url)
      {
        my($filename) = $url =~ m{([^/]*)$};
        return {
          type     => 'file',
          filename => $filename,
          content  => "data:$filename",
          protocol => 'file',
        };
      }
      else
      {
        return {
          type => 'list',
          list => [
            map { { filename => "foo-$_.tar.gz", url => "file://localhost/foo-$_.tar.gz" } } @{ $self->versions },
          ],
          protocol => 'file',
        }
      }
    },
  );
}

1;