Skip to content

Commit c536782

Browse files
committed
Switch to perl JSON::PP
`jq` is nice for prototyping, but many images do not have it...
1 parent 7c1d436 commit c536782

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

gh-program-downloader

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ find_artifact() {
4444
arch_re='(?:i[3-6]|x)86';;
4545
esac
4646
fi
47-
jq -r '['"$version_selector"'.assets[] | select (.name | test("'"$os_re"'") and test("'"$arch_re"'")) | .browser_download_url // empty] | .[-1]' "$releases"
47+
os_re="$os_re" arch_re="$arch_re" version_selector="$version_selector" \
48+
"$GITHUB_ACTION_PATH/program-filter" "$releases"
4849
}
4950

5051
select_artifact() {

program-filter

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env perl
2+
use JSON::PP;
3+
my $content;
4+
{
5+
local $/=undef;
6+
$content=<>;
7+
}
8+
9+
$releases_or_release=decode_json($content);
10+
11+
if ($ENV{version_selector}) {
12+
$release=$releases_or_release->[0];
13+
} else {
14+
$release=$releases_or_release;
15+
}
16+
17+
$os_re=$ENV{os_re} || ".";
18+
$arch_re=$ENV{arch_re} || ".";
19+
20+
$assets=$release->{assets};
21+
22+
my $result;
23+
for $asset (@{$assets}) {
24+
my $browser_download_url = $asset->{browser_download_url};
25+
next unless $browser_download_url;
26+
my $name = $asset->{name};
27+
next unless $name =~ /$os_re/;
28+
next unless $name =~ /$arch_re/;
29+
$result = $browser_download_url;
30+
}
31+
32+
print $result;

0 commit comments

Comments
 (0)