mirror of
https://github.com/ceph/ceph
synced 2024-12-28 22:43:29 +00:00
7db8a6a1d1
The git command is currently only needed in the src/make_version script. However, we can simply avoid it by assuming that if the git command is not installed then the current dir is not a git repo. Signed-off-by: Boris Ranto <branto@redhat.com>
113 lines
2.6 KiB
Bash
Executable File
113 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
GIT_VERSION_FILE=
|
|
CEPH_VER_HEADER=
|
|
NO_VERSION=0
|
|
|
|
is_git() {
|
|
type git > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo "Could not find git command. Assuming this is not a git repository, not updating .git_version"
|
|
return 1
|
|
fi
|
|
git status > /dev/zero 2>&1;
|
|
if [ $? -ne 0 ]; then
|
|
echo "This is no git repository, not updating .git_version"
|
|
return 1
|
|
else
|
|
return 0
|
|
fi
|
|
}
|
|
|
|
check_gitversion() {
|
|
if is_git; then
|
|
current=`git rev-parse HEAD 2> /dev/null; git describe 2> /dev/null`
|
|
if [ -f $GIT_VERSION_FILE ] ; then
|
|
old=`cat $GIT_VERSION_FILE`
|
|
|
|
if [ "$current" != "$old" ]; then
|
|
echo "$current" > $GIT_VERSION_FILE
|
|
fi
|
|
else
|
|
echo "$current" > $GIT_VERSION_FILE
|
|
fi
|
|
fi
|
|
}
|
|
|
|
print_ceph_ver() {
|
|
# print the content of the ceph_ver.h file
|
|
if [ $NO_VERSION -eq 1 ]; then
|
|
ver="no_version"
|
|
ver_nice="Development"
|
|
else
|
|
ver=`head -1 $GIT_VERSION_FILE`
|
|
ver_nice=`tail -1 $GIT_VERSION_FILE | cut -c 2-`
|
|
fi
|
|
|
|
echo "#ifndef CEPH_VERSION_H"
|
|
echo "#define CEPH_VERSION_H"
|
|
echo
|
|
echo "#define CEPH_GIT_VER $ver"
|
|
echo "#define CEPH_GIT_NICE_VER \"$ver_nice\""
|
|
echo
|
|
echo "#endif"
|
|
}
|
|
|
|
set_ceph_ver() {
|
|
# compare new and old CEPH_VER_HEADER
|
|
if [ -f $CEPH_VER_HEADER ]; then
|
|
tmpfile=$(mktemp -t "ceph_ver_h.XXXXXXXXXXXXX")
|
|
print_ceph_ver > $tmpfile
|
|
cur_ver=`cat $CEPH_VER_HEADER`
|
|
new_ver=`cat $tmpfile`
|
|
if [ "$cur_ver" != "$new_ver" ]; then
|
|
mv $tmpfile $CEPH_VER_HEADER
|
|
else
|
|
rm $tmpfile
|
|
fi
|
|
else
|
|
print_ceph_ver > $CEPH_VER_HEADER
|
|
fi
|
|
}
|
|
|
|
usage() {
|
|
printf "usage: $0 -g FILEPATH [options]\n"
|
|
printf "\t-g|--git-version-file\tFILEPATH for git version file (e.g. ./src/.git_version)\n"
|
|
printf "\t-c|--ceph-ver-header\tFILEPATH for ceph version header (e.g. ./src/ceph_ver.h)\n"
|
|
printf "\t-n|--no-version\t\tdon't generate version from git\n"
|
|
printf "\t-h|--help\t\tprint this usage instructions\n"
|
|
}
|
|
|
|
until [ -z "$1" ]; do
|
|
case $1 in
|
|
-n|--no-version)
|
|
NO_VERSION=1;
|
|
;;
|
|
-g|--git-version-file)
|
|
GIT_VERSION_FILE=$2
|
|
shift;
|
|
;;
|
|
-c|--ceph-ver-header)
|
|
CEPH_VER_HEADER=$2
|
|
shift;
|
|
;;
|
|
-h|--help)
|
|
usage;
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
shift
|
|
done;
|
|
|
|
if [ -n "$GIT_VERSION_FILE" ] ; then
|
|
if [ -z "$CEPH_VER_HEADER" ] ; then
|
|
check_gitversion
|
|
else
|
|
check_gitversion
|
|
set_ceph_ver
|
|
fi
|
|
else
|
|
usage
|
|
fi
|