A little app to simulate every possible move in Connect Four.
1#!/usr/bin/env bash
2#-------------------------------------------------------------------------------------------------------------
3# Copyright (c) Microsoft Corporation. All rights reserved.
4# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
5#-------------------------------------------------------------------------------------------------------------
6#
7set -e
8
9CMAKE_VERSION=${1:-"none"}
10
11if [ "${CMAKE_VERSION}" = "none" ]; then
12 echo "No CMake version specified, skipping CMake reinstallation"
13 exit 0
14fi
15
16# Cleanup temporary directory and associated files when exiting the script.
17cleanup() {
18 EXIT_CODE=$?
19 set +e
20 if [[ -n "${TMP_DIR}" ]]; then
21 echo "Executing cleanup of tmp files"
22 rm -Rf "${TMP_DIR}"
23 fi
24 exit $EXIT_CODE
25}
26trap cleanup EXIT
27
28
29echo "Installing CMake..."
30apt-get -y purge --auto-remove cmake
31mkdir -p /opt/cmake
32
33architecture=$(dpkg --print-architecture)
34case "${architecture}" in
35 arm64)
36 ARCH=aarch64 ;;
37 amd64)
38 ARCH=x86_64 ;;
39 *)
40 echo "Unsupported architecture ${architecture}."
41 exit 1
42 ;;
43esac
44
45CMAKE_BINARY_NAME="cmake-${CMAKE_VERSION}-linux-${ARCH}.sh"
46CMAKE_CHECKSUM_NAME="cmake-${CMAKE_VERSION}-SHA-256.txt"
47TMP_DIR=$(mktemp -d -t cmake-XXXXXXXXXX)
48
49echo "${TMP_DIR}"
50cd "${TMP_DIR}"
51
52curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_BINARY_NAME}" -O
53curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_CHECKSUM_NAME}" -O
54
55sha256sum -c --ignore-missing "${CMAKE_CHECKSUM_NAME}"
56sh "${TMP_DIR}/${CMAKE_BINARY_NAME}" --prefix=/opt/cmake --skip-license
57
58ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
59ln -s /opt/cmake/bin/ctest /usr/local/bin/ctest