raycast: add passthru.updateScript

This commit is contained in:
DontEatOreo 2024-04-03 20:06:59 +03:00
parent 394a44ced3
commit 36cac1a5f0
No known key found for this signature in database
GPG key ID: 0DB5361BEEE530AB
2 changed files with 17 additions and 20 deletions

View file

@ -1,6 +1,10 @@
{ lib
, stdenvNoCC
, fetchurl
, writeShellApplication
, curl
, jq
, common-updater-scripts
, undmg
}:
@ -32,6 +36,19 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook postInstall
'';
passthru = {
updateScript = writeShellApplication {
name = "raycast-update-script";
runtimeInputs = [ curl jq common-updater-scripts ];
text = ''
set -eo pipefail
url=$(curl --silent "https://releases.raycast.com/releases/latest?build=universal")
version=$(echo "$url" | jq -r '.version')
update-source-version raycast "$version" --file=./pkgs/os-specific/darwin/raycast/default.nix
'';
};
};
meta = with lib; {
description = "Control your tools with a few keystrokes";
homepage = "https://raycast.app/";

View file

@ -1,20 +0,0 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=../../../../. -i bash -p common-updater-scripts jq
set -eo pipefail
new_version=$(curl --silent https://releases.raycast.com/releases/latest?build=universal | jq -r '.version')
old_version=$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)
if [[ $new_version == $old_version ]]; then
echo "Already up to date."
exit 0
else
echo "raycast: $old_version -> $new_version"
sed -Ei.bak '/ *version = "/s/".+"/"'"$new_version"'"/' ./default.nix
rm ./default.nix.bak
fi
hash=$(nix --extra-experimental-features nix-command store prefetch-file --json --hash-type sha256 "https://releases.raycast.com/releases/$new_version/download?build=universal" | jq -r '.hash')
sed -Ei.bak '/ *hash = /{N;N; s@("sha256-)[^;"]+@"'"$hash"'@}' ./default.nix
rm ./default.nix.bak