nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1#!/usr/bin/env nix-shell
2#!nix-shell -i bash -p curl gnused nix jq
3
4SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
5
6latestVersion="$(curl --fail -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "https://api.github.com/repos/brave/brave-browser/releases/latest" | jq -r '.tag_name' | sed 's/^v//')"
7
8hashAarch64="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/brave/brave-browser/releases/download/v${latestVersion}/brave-browser_${latestVersion}_arm64.deb")")"
9hashAmd64="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/brave/brave-browser/releases/download/v${latestVersion}/brave-browser_${latestVersion}_amd64.deb")")"
10hashAarch64Darwin="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/brave/brave-browser/releases/download/v${latestVersion}/brave-v${latestVersion}-darwin-arm64.zip")")"
11hashAmd64Darwin="$(nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "https://github.com/brave/brave-browser/releases/download/v${latestVersion}/brave-v${latestVersion}-darwin-x64.zip")")"
12
13cat > $SCRIPT_DIR/package.nix << EOF
14# Expression generated by update.sh; do not edit it by hand!
15{ stdenv, callPackage, ... }@args:
16
17let
18 pname = "brave";
19 version = "${latestVersion}";
20
21 allArchives = {
22 aarch64-linux = {
23 url = "https://github.com/brave/brave-browser/releases/download/v\${version}/brave-browser_\${version}_arm64.deb";
24 hash = "${hashAarch64}";
25 };
26 x86_64-linux = {
27 url = "https://github.com/brave/brave-browser/releases/download/v\${version}/brave-browser_\${version}_amd64.deb";
28 hash = "${hashAmd64}";
29 };
30 aarch64-darwin = {
31 url = "https://github.com/brave/brave-browser/releases/download/v\${version}/brave-v\${version}-darwin-arm64.zip";
32 hash = "${hashAarch64Darwin}";
33 };
34 x86_64-darwin = {
35 url = "https://github.com/brave/brave-browser/releases/download/v\${version}/brave-v\${version}-darwin-x64.zip";
36 hash = "${hashAmd64Darwin}";
37 };
38 };
39
40 archive =
41 if builtins.hasAttr stdenv.system allArchives then
42 allArchives.\${stdenv.system}
43 else
44 throw "Unsupported platform.";
45
46in
47callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ]) (
48 archive
49 // {
50 inherit pname version;
51 }
52)
53EOF