#!/usr/bin/env bash version= gitArgs= while [ "$#" -gt 0 ]; do i="$1" shift 1 case "$i" in --version | -v) version="$1" shift 1 ;; --git-args) gitArgs="$gitArgs $1" shift 1 ;; *) echo "$0: unknown option \`$i'" exit 1 ;; esac done # Create a working environment CWD=$(pwd) TMP=$(mktemp -d) cd "$TMP" || exit 1 # Fetch the latest source or the required version gitUrl="https://github.com/demarches-simplifiees/demarches-simplifiees.fr.git" if [ -n "$version" ]; then git clone --depth 1 --branch "$version" $gitUrl . else git clone --depth 1 $gitUrl . version="$(git rev-parse HEAD)" fi # Generate gemset.nix nix-shell -p bundix --run "bundix -l" >/dev/null # Copy the new files cp gemset.nix Gemfile Gemfile.lock "$CWD/rubyEnv/" # Print the new source details SRC_HASH=$(nix-shell -p nurl --run "nurl --hash $gitUrl $version") # Switch to bun nix-shell -p bun --run "bun install --frozen-lockfile --no-cache --no-progress --ignore-scripts" DEPS_HASH=$(nix-hash --sri --type sha256 node_modules) cat <"$CWD/meta.nix" { version = "$version"; src-hash = "$SRC_HASH"; deps-hash = "$DEPS_HASH"; } EOF nix-shell -p nixfmt-rfc-style --run "nixfmt $CWD" rm -rf "$TMP"