#!/usr/bin/env bash set -e usage='usage: files.bash [] [--] Options: --version CMake . version number to push. Defaults to version of source tree. ' die() { echo "$@" 1>&2; exit 1 } readonly cmake_source_dir="${BASH_SOURCE%/*}/../.." cmake_version_component() { sed -n " /^set(CMake_VERSION_${1}/ {s/set(CMake_VERSION_${1} *\([0-9]*\))/\1/;p;} " "${cmake_source_dir}/Source/CMakeVersion.cmake" } version='' while test "$#" != 0; do case "$1" in --version) shift; version="$1" ;; --) shift ; break ;; -*) die "$usage" ;; *) break ;; esac shift done test "$#" = 0 || die "$usage" if test -z "$version"; then cmake_version_major="$(cmake_version_component MAJOR)" cmake_version_minor="$(cmake_version_component MINOR)" cmake_version_patch="$(cmake_version_component PATCH)" cmake_version_rc="$(cmake_version_component RC)" version="${cmake_version_major}.${cmake_version_minor}.${cmake_version_patch}" if test -n "$cmake_version_rc"; then version="$version-rc$cmake_version_rc" fi fi readonly version IFS='.-' read version_major version_minor version_patch version_suffix <<< "$version" readonly version_major readonly version_minor readonly version_patch readonly version_suffix if test -n "$version_suffix"; then maybe_version_suffix='"suffix": "'"$version_suffix"'",' else maybe_version_suffix='' fi readonly maybe_version_suffix readonly files_v1_in="${BASH_SOURCE%/*}/files-v1.json.in" sed " s/@version@/$version/g s/@version_major@/$version_major/g s/@version_minor@/$version_minor/g s/@version_patch@/$version_patch/g s/@maybe_version_suffix@/$maybe_version_suffix/g " "$files_v1_in" \ | jq . \ > "cmake-$version-files-v1.json" readonly algos=' 256 ' for algo in $algos; do shasum -a $algo \ "cmake-$version-files-v1.json" \ $(jq -r '.files[].name' "cmake-$version-files-v1.json") \ | LC_ALL=C sort -k 2 \ > "cmake-$version-SHA-$algo.txt" done