| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/usr/bin/env bash
- set -e
- usage='usage: files.bash [<options>] [--]
- Options:
- --version <ver> CMake <major>.<minor> 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
|