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; |