makemkv: 1.17.7 -> 1.17.8, add updateScript (#346220)

This commit is contained in:
Fabián Heredia Montiel 2024-10-10 16:25:56 -06:00 committed by GitHub
commit 627c76c54a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,13 +1,16 @@
{
autoPatchelfHook,
common-updater-scripts,
curl,
fetchurl,
ffmpeg,
lib,
mkDerivation,
fetchurl,
autoPatchelfHook,
pkg-config,
curl,
ffmpeg,
openssl,
pkg-config,
qtbase,
rubyPackages,
writeShellApplication,
zlib,
withJava ? true,
@ -15,21 +18,21 @@
}:
let
version = "1.17.7";
version = "1.17.8";
# Using two URLs as the first one will break as soon as a new version is released
src_bin = fetchurl {
urls = [
"http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
"http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
];
hash = "sha256-jFvIMbyVKx+HPMhFDGTjktsLJHm2JtGA8P/JZWaJUdA=";
hash = "sha256-jg9UdDDZr+7ZdseJtb7N+y7Prhyq3hLo4+EZpzRxcEE=";
};
src_oss = fetchurl {
urls = [
"http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
"http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
];
hash = "sha256-di5VLUb57HWnxi3LfZfA/Z5qFRINDvb1oIDO4pHToO8=";
hash = "sha256-knUrzj/J+Xk5N1tg0q9iIXT+hqStkkjL3Yc2Yp5tvIo=";
};
in
mkDerivation {
@ -83,6 +86,35 @@ mkDerivation {
runHook postInstall
'';
passthru = {
srcs = {
inherit src_bin src_oss;
};
updateScript = lib.getExe (writeShellApplication {
name = "update-makemkv";
runtimeInputs = [
common-updater-scripts
curl
rubyPackages.nokogiri
];
text = ''
get_version() {
# shellcheck disable=SC2016
curl --fail --silent 'https://forum.makemkv.com/forum/viewtopic.php?f=3&t=224' \
| nokogiri -e 'puts $_.css("head title").first.text.match(/\bMakeMKV (\d+\.\d+\.\d+) /)[1]'
}
oldVersion=${lib.escapeShellArg version}
newVersion=$(get_version)
if [[ $oldVersion == "$newVersion" ]]; then
echo "$0: New version same as old version, nothing to do." >&2
exit
fi
update-source-version makemkv "$newVersion" --source-key=passthru.srcs.src_bin
update-source-version makemkv "$newVersion" --source-key=passthru.srcs.src_oss --ignore-same-version
'';
});
};
meta = with lib; {
description = "Convert blu-ray and dvd to mkv";
longDescription = ''