{ lib , stdenvNoCC , ruby , bundler , libffi , gcc , writeShellScriptBin , fetchFromGitHub }: let name = "website"; version = "20240114"; assets = fetchFromGitHub { name = "${name}-assets"; owner = "cotes2020"; repo = "chirpy-static-assets"; rev = "c577249"; hash = "sha256-Uxe7PMNwzKUN2b77QbjWLxEtOOLodPOyeMuUM1eKdlc="; }; vendor = stdenvNoCC.mkDerivation { pname = "${name}-vendor"; inherit version; src = ./.; nativeBuildInputs = [ bundler ]; buildPhase = '' export HOME="$(mktemp -d)" bundle config set --local path "$out" bundler package --no-install ''; installPhase = '' cp Gemfile* $out ''; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "sha256-TEpo7m4a257kAFxCCx51PRZBRF4Fk6ItX+6t4GEp6Zs="; }; deps = stdenvNoCC.mkDerivation { pname = "${name}-deps"; inherit version; src = vendor; buildInputs = [ ruby libffi gcc ]; nativeBuildInputs = [ bundler ]; buildPhase = '' export HOME="$(mktemp -d)" bundle config set --local path "$out" mkdir -p "vendor" mv ruby/*/cache "vendor/" bundle install --local ''; }; in stdenvNoCC.mkDerivation { pname = name; inherit version; src = ./.; buildInputs = [ ruby libffi gcc ]; nativeBuildInputs = [ (writeShellScriptBin "git" "true") bundler ]; configurePhase = '' export HOME="$(mktemp -d)" bundle config set --local path "${deps}" cp -r ${assets}/. assets/lib/ ''; buildPhase = "JEKYLL_ENV=production bundle exec jekyll build"; installPhase = '' cp -r _site "$out" ''; }