]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Contrib: Add a script to download a static clang-format
authorMatthias Maier <tamiko@43-1.org>
Wed, 16 May 2018 23:12:58 +0000 (18:12 -0500)
committerMatthias Maier <tamiko@43-1.org>
Sat, 19 May 2018 14:18:35 +0000 (09:18 -0500)
contrib/utilities/download_clang_format [new file with mode: 0755]

diff --git a/contrib/utilities/download_clang_format b/contrib/utilities/download_clang_format
new file mode 100755 (executable)
index 0000000..1c34fdb
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/bash
+## ---------------------------------------------------------------------
+##
+## Copyright (C) 2018 by the deal.II authors
+##
+## This file is part of the deal.II library.
+##
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
+##
+## ---------------------------------------------------------------------
+
+#
+# This script downloads and installs the clang-format binary. The
+# destination directory is
+#   [contrib/utilities]/programs/clang-<VERSION>/bin.
+#
+# This script only works on Linux (amd64) and macOS. For other
+# architectures it is necessary to compile the clang-format binary by hand.
+# This can be done with the compile_clang_format script.
+#
+
+PRG="$(cd "$(dirname "$0")" && pwd)/programs"
+CLANG_PATH="${PRG}/clang-6"
+
+URL="https://github.com/dealii/dealii/releases/download/v9.0.0"
+
+# Find out which kind of OS we are running and set the appropriate settings
+case "${OSTYPE}" in
+  linux*)
+    FILENAME="clang-format-6-linux.tar.gz"
+    CHECKSUM_CMD="sha256sum"
+    CHECKSUM="387b42b30db598d51bf26f020c5bef574cb6355210d2f5909691407a0fc81a26  $FILENAME"
+    ;;
+  *)
+    echo "unknown: ${OSTYPE}"
+    exit 1
+    ;;
+esac
+
+if [ ! -d "${PRG}" ]
+then
+    echo "create folder ${PRG}"
+    mkdir "${PRG}"
+fi
+
+if [ -d "${CLANG_PATH}" ]
+then
+    echo "${CLANG_PATH}  exists. Exiting."
+    exit 1
+fi
+
+echo "Downloading and installing clang-format-6."
+mkdir "${CLANG_PATH}"
+
+tmpdir="${TMPDIR:-/tmp}/dealiiclang${RANDOM}${RANDOM}"
+mkdir -p "${tmpdir}"
+cd "${tmpdir}"
+curl -s -L "${URL}/${FILENAME}" -O > /dev/null
+if echo "${CHECKSUM}" | "${CHECKSUM_CMD}" -c; then
+  tar xfz "${FILENAME}" -C "${PRG}" > /dev/null
+else
+  echo "*** The downloaded file has the wrong SHA256 checksum!"
+  exit 1
+fi
+rm -r "${tmpdir}"
+
+echo "All done. clang-format succesfully installed into"
+echo "    ${CLANG_PATH}/clang-6/bin"

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.