Unverified Commit 71f42b7f authored by Artturi's avatar Artturi Committed by GitHub
Browse files

Merge pull request #230874 from Ninlives/runPhase

parents c8731973 707a5c09
Loading
Loading
Loading
Loading
+39 −33
Original line number Diff line number Diff line
@@ -1526,6 +1526,44 @@ showPhaseFooter() {
}


runPhase() {
    local curPhase="$*"
    if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then return; fi
    if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then return; fi
    if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then return; fi
    if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then return; fi
    if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then return; fi
    if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then return; fi
    if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then return; fi
    if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then return; fi
    if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then return; fi

    if [[ -n $NIX_LOG_FD ]]; then
        echo "@nix { \"action\": \"setPhase\", \"phase\": \"$curPhase\" }" >&"$NIX_LOG_FD"
    fi

    showPhaseHeader "$curPhase"
    dumpVars

    local startTime=$(date +"%s")

    # Evaluate the variable named $curPhase if it exists, otherwise the
    # function named $curPhase.
    eval "${!curPhase:-$curPhase}"

    local endTime=$(date +"%s")

    showPhaseFooter "$curPhase" "$startTime" "$endTime"

    if [ "$curPhase" = unpackPhase ]; then
        # make sure we can cd into the directory
        [ -n "${sourceRoot:-}" ] && chmod +x "${sourceRoot}"

        cd "${sourceRoot:-.}"
    fi
}


genericBuild() {
    # variable used by our gzip wrapper to add -n.
    # gzip is in common-path.nix and is added to nix-shell but we only want to change its behaviour in nix builds. do not move to a setupHook in gzip.
@@ -1552,39 +1590,7 @@ genericBuild() {
    # phase name is space-free, which it must be because it's the name
    # of either a shell variable or a shell function.
    for curPhase in ${phases[*]}; do
        if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then continue; fi
        if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then continue; fi
        if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then continue; fi
        if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then continue; fi
        if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then continue; fi
        if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then continue; fi
        if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then continue; fi
        if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then continue; fi
        if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then continue; fi

        if [[ -n $NIX_LOG_FD ]]; then
            echo "@nix { \"action\": \"setPhase\", \"phase\": \"$curPhase\" }" >&"$NIX_LOG_FD"
        fi

        showPhaseHeader "$curPhase"
        dumpVars

        local startTime=$(date +"%s")

        # Evaluate the variable named $curPhase if it exists, otherwise the
        # function named $curPhase.
        eval "${!curPhase:-$curPhase}"

        local endTime=$(date +"%s")

        showPhaseFooter "$curPhase" "$startTime" "$endTime"

        if [ "$curPhase" = unpackPhase ]; then
            # make sure we can cd into the directory
            [ -n "${sourceRoot:-}" ] && chmod +x "${sourceRoot}"

            cd "${sourceRoot:-.}"
        fi
        runPhase "$curPhase"
    done
}