main
 1#!/usr/bin/env nix-shell
 2#!nix-shell -i bash -p nix-update -p jq -p nix
 3# shellcheck shell=bash
 4set -euo pipefail
 5
 6SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
 7PKG_FILE="$SCRIPT_DIR/default.nix"
 8FRONTEND_FILE="$SCRIPT_DIR/frontend.nix"
 9PKG_NAME="miaomiaowu"
10
11OLD_VERSION=$(sed -n 's/.*version = "\([^"]*\)";.*/\1/p' "$PKG_FILE" | head -1)
12
13nix-update "$UPDATE_NIX_ATTR_PATH"
14
15NEW_VERSION=$(sed -n 's/.*version = "\([^"]*\)";.*/\1/p' "$PKG_FILE" | head -1)
16
17if [ "$NEW_VERSION" = "$OLD_VERSION" ]; then
18	exit 0
19fi
20
21NEW_SRC_HASH=$(sed -n 's/.*hash = "\(sha256-[^"]*\)";.*/\1/p' "$PKG_FILE" | head -1)
22
23sed -i \
24	-e "s/version = \"$OLD_VERSION\";/version = \"$NEW_VERSION\";/" \
25	-e "s|hash = \"sha256-[^\"]*\";|hash = \"$NEW_SRC_HASH\";|" \
26	"$FRONTEND_FILE"
27
28NPM_HASH=$(nix-build --no-out-link --expr "
29  let pkgs = import <nixpkgs> {};
30      frontend = import \"$FRONTEND_FILE\" {
31        inherit (pkgs) lib buildNpmPackage fetchFromGitHub jq;
32      };
33  in frontend.npmDeps.overrideAttrs (_: { outputHash = \"\"; outputHashAlgo = \"sha256\"; })
34" 2>&1 | grep -o 'got:.*sha256-[A-Za-z0-9+/=]*' | tail -1 | sed 's/got:.*\(sha256-[A-Za-z0-9+/=]*\)/\1/' || true)
35
36if [ -z "$NPM_HASH" ]; then
37	echo "failed to extract npmDepsHash" >&2
38	exit 1
39fi
40
41sed -i "s|npmDepsHash = \"sha256-[^\"]*\";|npmDepsHash = \"$NPM_HASH\";|" "$FRONTEND_FILE"
42
43echo "$PKG_NAME: $OLD_VERSION -> $NEW_VERSION"