View | Details | Raw Unified | Return to bug 162866
Collapse All | Expand All

(-)b/sys/conf/newvers.sh (-13 / +62 lines)
Lines 87-105 Link Here
87
v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
87
v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
88
i=`${MAKE:-make} -V KERN_IDENT`
88
i=`${MAKE:-make} -V KERN_IDENT`
89
89
90
for dir in /bin /usr/bin /usr/local/bin; do
90
get_path() {
91
	if [ -x "${dir}/svnversion" ] ; then
91
	local name op
92
		svnversion=${dir}/svnversion
92
	op="$1"; shift
93
		break
93
	name="$1"; shift
94
	fi
94
	for dir in "$@"; do
95
	if [ -d "${SYSDIR}/../.git" -a -x "${dir}/git" ] ; then
95
		if [ "$op" "$dir/$name" ]; then
96
		git_cmd="${dir}/git --git-dir=${SYSDIR}/../.git"
96
			echo "$dir/$name"
97
		break
97
			return
98
	fi
98
		fi
99
done
99
	done
100
}
100
101
102
bin_path_list="/bin /usr/bin /usr/local/bin"
103
104
svnversion=$(get_path -x svnversion $bin_path_list)
101
if [ -n "$svnversion" ] ; then
105
if [ -n "$svnversion" ] ; then
102
	echo "$svnversion"
103
	svn=`cd ${SYSDIR} && $svnversion`
106
	svn=`cd ${SYSDIR} && $svnversion`
104
	case "$svn" in
107
	case "$svn" in
105
	[0-9]*)	svn=" r${svn}" ;;
108
	[0-9]*)	svn=" r${svn}" ;;
Lines 107-112 Link Here
107
	esac
110
	esac
108
fi
111
fi
109
112
113
git_cmd=$(get_path -x git $bin_path_list)
114
if [ -n "$git_cmd" ]; then
115
	git_dir=$(get_path -d .git "${SYSDIR}" "${SYSDIR}/..")
116
	if [ -n "$git_dir" ]; then
117
		git_cmd="${dir}/git --git-dir=$git_dir"
118
	else
119
		unset git_cmd
120
	fi
121
fi
110
if [ -n "$git_cmd" ] ; then
122
if [ -n "$git_cmd" ] ; then
111
	git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null`
123
	git=`$git_cmd rev-parse --verify --short HEAD 2>/dev/null`
112
	svn=`$git_cmd svn find-rev $git 2>/dev/null`
124
	svn=`$git_cmd svn find-rev $git 2>/dev/null`
Lines 129-138 Link Here
129
	fi
141
	fi
130
fi
142
fi
131
143
144
hg_cmd=$(get_path -x hg $bin_path_list)
145
if [ -n "$hg_cmd" ]; then
146
	hg_repo=$(cd ${SYSDIR} && $hg_cmd root 2>/dev/null)
147
	if [ -n "$hg_repo" ]; then
148
		hg_cmd="$hg_cmd --repository ${hg_repo}"
149
	else
150
		unset hg_cmd
151
	fi
152
fi
153
if [ -n "$hg_cmd" ] ; then
154
	if [ -n "$($hg_cmd status --modified ${SYSDIR})" ]; then
155
		hg_mod="-dirty"
156
	fi
157
158
	if [ -d "${hg_repo}/.hg/patches" ]; then
159
		for I in $($hg_cmd qapplied 2>/dev/null); do
160
			hg_patches="${hg_patches},${I}"
161
		done
162
	fi
163
164
	if [ -n "${hg_patches}" ]; then
165
		hg_opt="-rqbase"
166
	else
167
		hg_opt=""
168
	fi
169
	revs=$($hg_cmd parent $hg_opt --template '{node|short}\t{svnrev}\n')
170
	hg_rev=$(echo "$revs" | cut -f 1)
171
	svn_rev=$(echo "$revs" | cut -f 2)
172
	if [ -n "${svn_rev}" ]; then
173
		svn=" r${svn_rev}"
174
	else
175
		svn=" "
176
	fi
177
178
	hg="+${hg_rev}${hg_mod}${hg_patches}"
179
fi
180
132
cat << EOF > vers.c
181
cat << EOF > vers.c
133
$COPYRIGHT
182
$COPYRIGHT
134
#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}: ${t}"
183
#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}${hg}: ${t}"
135
#define VERSTR "${VERSION} #${v}${svn}${git}: ${t}\\n    ${u}@${h}:${d}\\n"
184
#define VERSTR "${VERSION} #${v}${svn}${git}${hg}: ${t}\\n    ${u}@${h}:${d}\\n"
136
#define RELSTR "${RELEASE}"
185
#define RELSTR "${RELEASE}"
137
186
138
char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;
187
char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;

Return to bug 162866