3 # Automated Testing Framework (atf)
5 # Copyright (c) 2007, 2008, 2009 The NetBSD Foundation, Inc.
8 # Redistribution and use in source and binary forms, with or without
9 # modification, are permitted provided that the following conditions
11 # 1. Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
13 # 2. Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in the
15 # documentation and/or other materials provided with the distribution.
17 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
18 # CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
19 # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 # IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
22 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
24 # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
26 # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
27 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
28 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 # Generates a header file with information about the revision used to
47 echo "${Prog_Name}: ${@}" 1>&2
55 ${MTN} --root=${ROOT} "${@}"
59 # get_rev_info_into_vars
61 # Sets the following variables to describe the current revision of the tree:
62 # rev_base_id: The base revision identifier.
63 # rev_modified: true if the tree has been locally modified.
65 get_rev_info_into_vars() {
66 rev_base_id=$(call_mtn automate get_base_revision_id)
68 if call_mtn status | grep "no changes
" >/dev/null; then
74 datetime=$(call_mtn automate certs ${rev_base_id} | \
75 grep 'value "[2-9][0-9][0-9][0-9]-[01][0-9]-[0-3][0-9]' | \
77 rev_date=$(echo ${datetime} | cut -d T -f 1)
78 rev_time=$(echo ${datetime} | cut -d T -f 2)
87 get_rev_info_into_vars
91 echo "#define PACKAGE_REVISION_BASE \"${rev_base_id}\"" >>${revfile}
93 if [ ${rev_modified} = true
]; then
94 echo "#define PACKAGE_REVISION_MODIFIED 1" >>${revfile}
97 echo "#define PACKAGE_REVISION_DATE \"${rev_date}\"" >>${revfile}
98 echo "#define PACKAGE_REVISION_TIME \"${rev_time}\"" >>${revfile}
110 while getopts :f
:m
:r
:o
:v
: arg
; do
128 err
"Unknown option ${arg}"
132 [ -n "${ROOT}" ] || \
133 err
"Must specify the top-level source directory with -r"
135 err
"Must specify an output format with -f"
136 [ -n "${outfile}" ] || \
137 err
"Must specify an output file with -o"
138 [ -n "${version}" ] || \
139 err
"Must specify a version number with -v"
141 if [ -n "${MTN}" -a -d ${ROOT}/_MTN
]; then
144 tmp
=$
(mktemp
-t generate-revision.XXXXXX
)
145 generate_
${fmt} ${tmp} ${version}
146 cmp -s ${tmp} ${outfile} || cp -p ${tmp} ${outfile}
150 err
"Unknown format ${fmt}"
160 # vim: syntax=sh:expandtab:shiftwidth=4:softtabstop=4