| quietly() { | |
| readonly log="/tmp/quietly-$RANDOM.log" | |
| if ! "$@" >"$log" 2>&1; then | |
| ret=$? | |
| cat "$log" | |
| rm -f "$log" | |
| exit $ret | |
| fi | |
| rm -f "$log" | |
| } | |
| if test -n "$CMAKE_CI_IN_SYMLINK_TREE"; then | |
| mkdir -p "$CI_PROJECT_DIR/real_work/work/build" | |
| ln -s real_work/work "$CI_PROJECT_DIR/work" | |
| git worktree prune | |
| git worktree add "$CI_PROJECT_DIR/work/cmake" HEAD | |
| # Assert that the hash matches. | |
| test "$(git -C "$CI_PROJECT_DIR/work/cmake" rev-parse HEAD)" = "$(git -C "$CI_PROJECT_DIR" rev-parse HEAD)" | |
| fi | |
| # Default to a UTF-8 locale. The per-job environment may override it. | |
| locales="$(locale -a 2>/dev/null)" | |
| if echo "$locales" | grep -qE '^C\.(UTF-8|utf8)$'; then | |
| export LANG=C.UTF-8 | |
| elif echo "$locales" | grep -qE '^en_US\.(UTF-8|utf8)$'; then | |
| export LANG=en_US.UTF-8 | |
| fi | |
| if test -r ".gitlab/ci/env_${CMAKE_CONFIGURATION}.sh"; then | |
| source ".gitlab/ci/env_${CMAKE_CONFIGURATION}.sh" | |
| fi | |
| # Report the selected locale. | |
| echo "locale: $(locale | grep '^LANG=') with $(locale -k charmap)" | |
| case "$(uname -s)-$(uname -m)" in | |
| Linux-*) | |
| # Remove superuser tools from PATH. | |
| export PATH=$(echo "$PATH" | sed 's|:[^:]*/sbin:|:|g') | |
| ;; | |
| esac |