diff options
Diffstat (limited to 'pkgs/applications/video/davinci-resolve/default.nix')
-rw-r--r-- | pkgs/applications/video/davinci-resolve/default.nix | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/pkgs/applications/video/davinci-resolve/default.nix b/pkgs/applications/video/davinci-resolve/default.nix index bb631909872cf..be18304386cbd 100644 --- a/pkgs/applications/video/davinci-resolve/default.nix +++ b/pkgs/applications/video/davinci-resolve/default.nix @@ -25,6 +25,9 @@ , jq , studioVariant ? false + +, common-updater-scripts +, writeShellApplication }: let @@ -162,11 +165,11 @@ let desktopItems = [ (makeDesktopItem { - name = "davinci-resolve"; - desktopName = "Davinci Resolve"; + name = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; + desktopName = "Davinci Resolve${lib.optionalString studioVariant " Studio"}"; genericName = "Video Editor"; - exec = "resolve"; - # icon = "DV_Resolve"; + exec = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; + icon = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; comment = "Professional video editing, color, effects and audio post-processing"; categories = [ "AudioVideo" @@ -251,7 +254,34 @@ buildFHSEnv { '' }"; - passthru = { inherit davinci; }; + extraInstallCommands = '' + mkdir -p $out/share/applications $out/share/icons/hicolor/128x128/apps + ln -s ${davinci}/share/applications/*.desktop $out/share/applications/ + ln -s ${davinci}/graphics/DV_Resolve.png $out/share/icons/hicolor/128x128/apps/davinci-resolve${lib.optionalString studioVariant "-studio"}.png + ''; + + passthru = { + inherit davinci; + updateScript = lib.getExe (writeShellApplication { + name = "update-davinci-resolve"; + runtimeInputs = [ curl jq common-updater-scripts ]; + text = '' + set -o errexit + drv=pkgs/applications/video/davinci-resolve/default.nix + currentVersion=${lib.escapeShellArg davinci.version} + downloadsJSON="$(curl --fail --silent https://www.blackmagicdesign.com/api/support/us/downloads.json)" + + latestLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("DaVinci Resolve")) | .downloadTitle]' | grep -oP 'DaVinci Resolve \K\d+\.\d+\.\d+' | sort | tail -n 1)" + update-source-version davinci-resolve "$latestLinuxVersion" --source-key=davinci.src + + # Since the standard and studio both use the same version we need to reset it before updating studio + sed -i -e "s/""$latestLinuxVersion""/""$currentVersion""/" "$drv" + + latestStudioLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("DaVinci Resolve")) | .downloadTitle]' | grep -oP 'DaVinci Resolve Studio \K\d+\.\d+\.\d+' | sort | tail -n 1)" + update-source-version davinci-resolve-studio "$latestStudioLinuxVersion" --source-key=davinci.src + ''; + }); + }; meta = with lib; { description = "Professional video editing, color, effects and audio post-processing"; @@ -260,6 +290,6 @@ buildFHSEnv { maintainers = with maintainers; [ amarshall jshcmpbll orivej ]; platforms = [ "x86_64-linux" ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - mainProgram = "davinci-resolve"; + mainProgram = "davinci-resolve${lib.optionalString studioVariant "-studio"}"; }; } |