-
Notifications
You must be signed in to change notification settings - Fork 0
/
alienfile
55 lines (46 loc) · 1.27 KB
/
alienfile
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
45
46
47
48
49
50
51
52
53
54
55
use alienfile;
use Path::Tiny qw( path );
plugin 'Probe::CommandLine' => (
command => 'deno',
args => [ '--version' ],
match => qr/^deno ([0-9\.]+)/,
version => qr/^deno ([0-9\.]+)/,
);
share {
# Only supports binary style for now.
my %os_arch_mapping = (
"darwin:aarch64" => { name => 'aarch64-apple-darwin' },
"darwin:x86_64" => { name => 'x86_64-apple-darwin' },
"MSWin32:x86_64" => { name => 'x86_64-pc-windows-msvc' },
"linux:x86_64" => { name => 'x86_64-unknown-linux-gnu' },
);
my $os_arch = join ":", ( $^O, meta->prop->{platform}{cpu}{arch}{name} );
plugin 'Download::GitHub' => (
github_user => 'denoland',
github_repo => 'deno',
asset => 1,
asset_name => qr/deno-@{[ $os_arch_mapping{$os_arch}{name} ]}\.zip/,
asset_format => 'zip',
asset_convert_version => sub {
my $version = shift;
$version =~ s/^v//;
$version;
},
);
patch sub {
my ($build) = @_;
for my $deno (map path($_), qw(deno deno.exe)) {
if( -f $deno ) {
$build->log("Moving $deno to bin/");
my $bin = path('bin');
$bin->mkpath;
$deno->move( $deno->absolute($bin) );
}
}
};
plugin 'Build::Copy';
gather sub {
my ($build) = @_;
$build->runtime_prop->{'style'} = 'binary';
};
}