You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.0 KiB

#!/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