linuxPackages_latest.prl-tools: add update script
This commit is contained in:
parent
b3f681c943
commit
b146aff9d2
@ -4050,6 +4050,12 @@
|
||||
email = "jupiter@m.rdis.dev";
|
||||
name = "Scott Little";
|
||||
};
|
||||
codgician = {
|
||||
email = "codgician@outlook.com";
|
||||
github = "codgician";
|
||||
githubId = 15964984;
|
||||
name = "codgician";
|
||||
};
|
||||
codifryed = {
|
||||
email = "gb@guyboldon.com";
|
||||
name = "Guy Boldon";
|
||||
|
@ -169,11 +169,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Parallels Tools for Linux guests";
|
||||
homepage = "https://parallels.com";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ catap wegank ];
|
||||
maintainers = with maintainers; [ catap wegank codgician ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
})
|
||||
|
39
pkgs/os-specific/linux/prl-tools/update.sh
Normal file
39
pkgs/os-specific/linux/prl-tools/update.sh
Normal file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl jq
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
nixpkgs="$(git rev-parse --show-toplevel)"
|
||||
path="$nixpkgs/pkgs/os-specific/linux/prl-tools/default.nix"
|
||||
|
||||
# Currently this script only supports Parallels 20
|
||||
# Please change the knowledge base url after each major release
|
||||
kb_url="https://kb.parallels.com/en/130212"
|
||||
content="$(curl -s "$kb_url")"
|
||||
|
||||
# Match latest version from Parallels knowledge base
|
||||
regex='<meta property="og:description" content="[^"]*Parallels Desktop ([0-9]+) for Mac ([0-9]+\.[0-9]+\.[0-9+]) \(([0-9]+)\)[^"]*" />'
|
||||
if [[ $content =~ $regex ]]; then
|
||||
major_version="${BASH_REMATCH[1]}"
|
||||
version="${BASH_REMATCH[2]}-${BASH_REMATCH[3]}"
|
||||
echo "Found latest version: $version, major version: $major_version"
|
||||
else
|
||||
echo "Failed to extract version from $kb_url"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract and compare current version
|
||||
old_version="$(grep -o 'version = ".*"' "$path" | awk -F'"' '{print $2}')"
|
||||
if [[ "$old_version" > "$version" || "$old_version" == "$version" ]]; then
|
||||
echo "Current version $old_version is up-to-date"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Update version and hash
|
||||
dmg_url="https://download.parallels.com/desktop/v${major_version}/${version}/ParallelsDesktop-${version}.dmg"
|
||||
sha256="$(nix store prefetch-file $dmg_url --json | jq -r '.hash')"
|
||||
sed -i -e "s/version = \"$old_version\"/version = \"$version\"/" \
|
||||
-e "s/hash = \"sha256-.*\"/hash = \"$sha256\"/" "$path"
|
||||
|
||||
git commit -qm "linuxPackages_latest.prl-tools: $old_version -> $version" "$path"
|
||||
echo "Updated linuxPackages_latest.prl-tools $old_version -> $version"
|
Loading…
Reference in New Issue
Block a user