3 usage
='usage: push.bash [<options>] [--] <dest>
7 --dir <dir> Specify subdirectory under destination.
8 Defaults to "v<version>".
9 --version <ver> CMake <major>.<minor> version number to push.
10 Defaults to version of source tree.
14 echo "$@" 1>&2; exit 1
17 cmake_source_dir
="${BASH_SOURCE%/*}/../.."
19 cmake_version_component
()
22 /^set(CMake_VERSION_${1}/ {s/set(CMake_VERSION_${1} *\([0-9]*\))/\1/;p;}
23 " "${cmake_source_dir}/Source/CMakeVersion.cmake"
29 while test "$#" != 0; do
31 --dir) shift; dir
="$1" ;;
32 --version) shift; version
="$1" ;;
39 test "$#" = 1 || die
"$usage"
42 if test -z "$version"; then
43 cmake_version_major
="$(cmake_version_component MAJOR)"
44 cmake_version_minor
="$(cmake_version_component MINOR)"
45 version
="${cmake_version_major}.${cmake_version_minor}"
49 if test -z "$dir"; then
53 if ! test -d "${dest}/${dir}"; then
54 mkdir
"${dest}/${dir}"
57 for f
in cmake-
${version}*; do
58 if ! test -f "${f}"; then
64 # Make a copy with a new timestamp and atomically rename into place.
65 tf
="${dest}/${dir}/.tmp.${f}"
66 df
="${dest}/${dir}/${f}"
70 # Pause to give each file a distinct time stamp even with 1s resolution
71 # so that sorting by time also sorts alphabetically.