{ pkgs, lib, ... }: let common = pkgs.callPackage ./common.nix {}; # Definieren eines schreibbaren Verzeichnisses writableDir = pkgs.stdenv.mkDerivation { name = "cover-report"; buildCommand = '' mkdir -p $out ''; }; in pkgs.writeShellScriptBin "build-cover-report" '' ${common} echo_header "Building cover report" download_test_images setup_go_env echo_section "Building" ${pkgs.go}/bin/go test -v -coverprofile=${writableDir}/coverage.out ./... if [ $? -ne 0 ]; then echo_fail "Failed to run tests" exit 1 fi if ! ${pkgs.go}/bin/go tool cover -html=${writableDir}/coverage.out -o ${writableDir}/coverage.html then echo_fail "Failed to generate coverage report" exit 1 fi echo_ok "Coverage report stored at ${writableDir}" echo_step "Opening coverage report in browser" if ! ${pkgs.xdg-utils}/bin/xdg-open ${writableDir}/coverage.html > /dev/null 2>&1 then echo_fail "Failed to open coverage report in browser" exit 1 fi echo_ok "Report opened in browser" ''