Guess the underlying SCM

This currently supports both CVS and Git as before. Git is still only
detected when running the script from within the root repository.
This commit is contained in:
Pierre Pronchery 2015-06-02 20:34:10 +02:00
parent ef87c5c068
commit 888724a2c1

View File

@ -111,15 +111,21 @@ _deforaos_package()
_package_diff() _package_diff()
{ {
if [ -d "CVS" ]; then scm=$(_package_guess_scm)
_package_diff_cvs
return $? case "$scm" in
elif [ -d ".git" ]; then cvs|git)
_package_diff_git "_package_diff_$scm"
return $? if [ $? -ne 0 ]; then
else _error "The sources were modified"
return 2 return $?
fi fi
;;
*)
_warning "Could not check for source changes"
;;
esac
return 0
} }
_package_diff_cvs() _package_diff_cvs()
@ -163,13 +169,25 @@ _package_guess_dependencies()
_package_guess_email() _package_guess_email()
{ {
[ -d ".git" ] && EMAIL=$($GIT config user.email) scm=$(_package_guess_scm)
case "$scm" in
git)
EMAIL=$($GIT config user.email)
;;
esac
[ -n "$EMAIL" ] || EMAIL="$USER@$DOMAIN" [ -n "$EMAIL" ] || EMAIL="$USER@$DOMAIN"
} }
_package_guess_fullname() _package_guess_fullname()
{ {
[ -d ".git" ] && FULLNAME=$($GIT config user.name) scm=$(_package_guess_scm)
case "$scm" in
git)
FULLNAME=$($GIT config user.name)
;;
esac
[ -n "$FULLNAME" ] || FULLNAME="$USER" [ -n "$FULLNAME" ] || FULLNAME="$USER"
} }
@ -227,6 +245,24 @@ _package_guess_name()
} }
#package_guess_scm
_package_guess_scm()
{
#cvs
if [ -d "CVS" ]; then
echo "cvs"
return 0
fi
#git
#FIXME also look in parent folders
if [ -d ".git" ]; then
echo "git"
return 0
fi
return 2
}
#package_debian #package_debian
_package_debian() _package_debian()
{ {
@ -237,11 +273,7 @@ _package_debian()
#check for changes #check for changes
_info "Checking for changes..." _info "Checking for changes..."
_package_diff _package_diff || return 2
if [ $? -ne 0 ]; then
_error "The sources were modified"
return $?
fi
#cleanup #cleanup
$DEBUG $MAKE distclean || return 2 $DEBUG $MAKE distclean || return 2