diff --git a/pkgs/by-name/gh/ghostty/package.nix b/pkgs/by-name/gh/ghostty/package.nix index dd55d382afac..735e9fb09bef 100644 --- a/pkgs/by-name/gh/ghostty/package.nix +++ b/pkgs/by-name/gh/ghostty/package.nix @@ -159,6 +159,7 @@ stdenv.mkDerivation (finalAttrs: { inherit (nixosTests) allTerminfo; nixos = nixosTests.terminal-emulators.ghostty; }; + updateScript = ./update.nu; }; meta = { diff --git a/pkgs/by-name/gh/ghostty/update.nu b/pkgs/by-name/gh/ghostty/update.nu new file mode 100755 index 000000000000..9005e8f51f6e --- /dev/null +++ b/pkgs/by-name/gh/ghostty/update.nu @@ -0,0 +1,34 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i nu -p nushell nixfmt common-updater-scripts + +let latest = ^list-git-tags --url=https://github.com/ghostty-org/ghostty + | lines + | sort --natural + | last + | str trim --left --char "v" + +let current = ^nix-instantiate --eval -A ghostty.version | str trim -c '"' + +if $latest == $current { + print "Up to date!" + exit +} + +print $"Updating Ghostty: ($current) -> ($latest)" + +^update-source-version ghostty $latest --file=./pkgs/by-name/gh/ghostty/package.nix + +# Update deps.nix +http get $"https://raw.githubusercontent.com/ghostty-org/ghostty/refs/tags/v($latest)/build.zig.zon.nix" + | ^nixfmt + | save -f ./pkgs/by-name/gh/ghostty/deps.nix + +# In extraordinary cases the DMG might take a while to be notarized by Apple +# and so it's possible for a Git tag to have no corresponding notarized DMG download. +# Don't fail here if that happens. +try { + ^update-source-version ghostty-bin $latest --file=./pkgs/by-name/gh/ghostty-bin/package.nix +} catch { + print "Failed to update bin package (is the DMG file uploaded yet?)" +} +