jetbrains: Fix update.pl script for MPS
Jetbrains seems to have deviated from the usual URL pattern of `/<product>/<version>/<name>-<version>.<ext>` by only using the major.minor part of the version number in the first URL segment for MPS. (cherry picked from commit 597f94bd8a1a9e469eeb8458bb815a350f5df4cc)
This commit is contained in:
parent
e06ef38b52
commit
887bf8b20a
|
@ -307,11 +307,12 @@ in
|
|||
|
||||
mps = buildMps rec {
|
||||
name = "mps-${version}";
|
||||
version = "2021.1"; /* updated by script */
|
||||
version = "2021.1";
|
||||
versionMajorMinor = "2021.1";
|
||||
description = "Create your own domain-specific language";
|
||||
license = lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/mps/${version}/MPS-${version}.tar.gz";
|
||||
url = "https://download.jetbrains.com/mps/${versionMajorMinor}/MPS-${version}.tar.gz";
|
||||
sha256 = "0fdh8lzsi2zryi0xs961vrf3l8kqk5imlj56dhifywi7xkhs3vwn"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-mps";
|
||||
|
|
|
@ -56,17 +56,20 @@ sub update_nix_block {
|
|||
if ($version eq $latest_versions{$channel}) {
|
||||
print("$channel is up to date at $version\n");
|
||||
} else {
|
||||
print("updating $channel: $version -> $latest_versions{$channel}\n");
|
||||
my $version_string = $latest_versions{$channel};
|
||||
my $versionMajorMinor = $version_string =~ s/^([0-9]+[.][0-9]+).*/$1/r;
|
||||
|
||||
print("updating $channel: $version -> $version_string\n");
|
||||
my ($url) = $block =~ /url\s*=\s*"([^"]+)"/;
|
||||
# try to interpret some nix
|
||||
my ($name) = $block =~ /name\s*=\s*"([^"]+)"/;
|
||||
$name =~ s/\$\{version\}/$latest_versions{$channel}/;
|
||||
# Some url paattern contain variables more than once
|
||||
$name =~ s/\$\{version\}/$version_string/;
|
||||
# Some url pattern contain variables more than once
|
||||
$url =~ s/\$\{name\}/$name/g;
|
||||
$url =~ s/\$\{version\}/$latest_versions{$channel}/g;
|
||||
$url =~ s/\$\{version\}/$version_string/g;
|
||||
$url =~ s/\$\{versionMajorMinor\}/$versionMajorMinor/g;
|
||||
die "$url still has some interpolation" if $url =~ /\$/;
|
||||
my ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/;
|
||||
my $version_string = $latest_versions{$channel};
|
||||
unless ( $sha256 ) {
|
||||
my $full_version = $latest_versions{"full1_" . $channel};
|
||||
$url =~ s/$version_string/$full_version/;
|
||||
|
@ -79,6 +82,7 @@ sub update_nix_block {
|
|||
print "Jetbrains published SHA256: $sha256\n";
|
||||
print "Conversion into base32 yields: $sha256Base32\n";
|
||||
$block =~ s#version\s*=\s*"([^"]+)".+$#version = "$version_string"; /* updated by script */#m;
|
||||
$block =~ s#versionMajorMinor\s*=\s*"([^"]+)".+$#versionMajorMinor = "$versionMajorMinor"; /* updated by script */#m;
|
||||
$block =~ s#sha256\s*=\s*"([^"]+)".+$#sha256 = "$sha256Base32"; /* updated by script */#m;
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue