{pkgs', ...}: let bashFktScript = import ./bash-fkt.nix { inherit pkgs'; }; in pkgs'.writeShellScriptBin "build-cover-report" '' source ${pkgs'.common}/bin/common ${bashFktScript} echo_header "Building cover report" echo_hint "The command is executed in the current working directory and not in a nix derivation." cd_working_dir setup_go_env download_test_images if [ -z "''${out}" ]; then echo_fail "No out directory specified" exit 1 fi writableDir="''${out}/coverage" if ! ${pkgs'.coreutils}/bin/mkdir -p ''${writableDir} > /dev/null 2>&1 then write_fail "Failed to create directory ''${writableDir}" exit 1 fi echo_step "Running tests" 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}" if [ -f ''${writableDir}/coverage.html ]; then echo_fail "Coverage report not found" exit 1 fi 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" ''