diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 2ced093..488e403 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -51,7 +51,6 @@ jobs: git config user.name github-actions git config user.email github-actions@github.com nix flake update --accept-flake-config - ./packages/zen-browser-unwrapped/update.sh git diff if [[ -n $(git status -s) ]]; then echo "CHANGED=true" >> $GITHUB_OUTPUT @@ -227,7 +226,6 @@ jobs: git config user.name github-actions git config user.email github-actions@github.com nix flake update --accept-flake-config - ./packages/zen-browser-unwrapped/update.sh git diff if [[ -n $(git status -s) ]]; then echo "CHANGED=true" >> $GITHUB_OUTPUT diff --git a/packages/zen-browser-unwrapped/default.nix b/packages/zen-browser-unwrapped/default.nix index 07161a8..766e715 100644 --- a/packages/zen-browser-unwrapped/default.nix +++ b/packages/zen-browser-unwrapped/default.nix @@ -151,7 +151,7 @@ in buildStdenv.mkDerivation rec { pname = "zen-browser-unwrapped"; - version = "1.0.1-a.10"; + version = "1.0.1-a.12"; src = fetchFromGitHub { owner = "zen-browser"; @@ -159,13 +159,13 @@ in rev = "${version}"; leaveDotGit = true; fetchSubmodules = true; - hash = "sha256-JnohKvY7455qlPpcr38307DEnAWFdJF+liLBnvBSl98="; + hash = "sha256-O5S468G+2fF11mnjR8lMSVBOTRe/X5VxfBLAEVh2mA0="; }; firefoxVersion = (lib.importJSON "${src}/surfer.json").version.version; firefoxSrc = fetchurl { url = "mirror://mozilla/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.xz"; - hash = "sha256-en3z+Xc3RT76okPKnbr5XQ8PgzxdyK+stXBO4W7wYNA="; + hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; }; SURFER_COMPAT = generic; diff --git a/packages/zen-browser-unwrapped/update.sh b/packages/zen-browser-unwrapped/update.sh old mode 100644 new mode 100755 index e69de29..1a4c004 --- a/packages/zen-browser-unwrapped/update.sh +++ b/packages/zen-browser-unwrapped/update.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq common-updater-scripts nix-prefetch-git nix-prefetch-github + +# Define the package file +PACKAGE_FILE="default.nix" + +# Function to get the latest version of zen-browser/desktop +get_latest_version() { + curl --silent "https://api.github.com/repos/zen-browser/desktop/releases" | + jq -r '[.[] | select(.prerelease==false)][0].tag_name' +} + +# Get the latest version +latest_version=$(get_latest_version) + +if [ -z "$latest_version" ] || [ "$latest_version" == "null" ]; then + echo "Failed to get the latest version." + exit 1 +fi + +echo "Latest version: $latest_version" + +# Update the 'version' variable in the Nix expression +sed -i "/pname = \"zen-browser-unwrapped\";/,/version = \".*\";/s/version = \".*\";/version = \"$latest_version\";/" "$PACKAGE_FILE" + +# Fetch the new 'src' hash +echo "Fetching new source hash..." +src_info=$(nix-prefetch-github zen-browser desktop --rev "$latest_version" --fetch-submodules) +src_hash=$(echo "$src_info" | jq -r .sha256) + +echo "New source hash: $src_hash" + +# Update 'rev' and 'hash' in the 'src' fetchFromGitHub +sed -i "/src = fetchFromGitHub {/,/};/{ + /owner = \"zen-browser\";/,/};/{ + s/rev = \".*\";/rev = \"$latest_version\";/ + s/hash = \".*\";/hash = \"$src_hash\";/ + } +}" "$PACKAGE_FILE" + +# Clone the repository to extract 'firefoxVersion' +tmpdir=$(mktemp -d) +trap 'rm -rf "$tmpdir"' EXIT + +git clone --depth 1 --branch "$latest_version" https://github.com/zen-browser/desktop.git "$tmpdir" + +# Extract 'firefoxVersion' from 'surfer.json' +firefoxVersion=$(jq --raw-output '.version.version' "$tmpdir/surfer.json") +echo "Firefox version: $firefoxVersion" + +# Update the 'firefoxVersion' in the Nix expression +sed -i "s/firefoxVersion = \".*\";/firefoxVersion = \"$firefoxVersion\";/" "$PACKAGE_FILE" + +# Fetch the new 'firefoxSrc' hash +firefox_url="mirror://mozilla/firefox/releases/$firefoxVersion/source/firefox-$firefoxVersion.source.tar.xz" +echo "Fetching Firefox source hash..." +firefox_hash=$(nix-prefetch-url --unpack "$firefox_url") + +echo "Firefox source hash: $firefox_hash" + +# Update the 'firefoxSrc' hash in the Nix expression +sed -i "/firefoxSrc = fetchurl {/,/};/{ + s/hash = \".*\";/hash = \"$firefox_hash\";/ +}" "$PACKAGE_FILE" + +echo "Update complete!"