# Note: helper-functions.sh and var-definitions.sh needed.
###########################################################
-function clone_repository() {
+git_clone_repository() {
local repo
repo=$1
$__git_clone $repo.git >> $__output_file 2>&1
return $?
}
-function update_repository() {
+git_update_repository() {
local repo
repo=$1
return 0
}
-function clean_repository() {
+git_clean_repository() {
local repo
repo=$1
return 0
}
-function get_sources() {
+svn_checkout_repository() {
+ local repo
+ local rev
+ repo=$1
+ rev=$2
+
+ if [ -n "$rev" ]; then
+ rev="-r $rev"
+ fi
+ $__svn_checkout $repo $rev >> $__output_file 2>&1
+ return $?
+}
+
+svn_update_repository() {
+ local repo
+ local rev
+ repo=$1
+ rev=$2
+
+ if [ -n "$rev" ]; then
+ rev="-r $rev"
+ fi
+
+ if [ ! -d $repo ]; then
+ error " Trying to update invalid repository"
+ fi
+
+ cd $repo
+ $__svn_update $repo $rev>> $__output_file 2>&1 || return 1
+ cd - > /dev/null 2>&1
+
+ return 0
+}
+
+svn_latest_rev() {
+ __svn_latest_rev=`$__svn info $__svn_repo | $__grep "Last Changed Rev:" | cut -d" " -f4`
+}
+
+get_sources() {
local modules
local repo
+ local git
+ local pkg_version
+ local svn_rev
+ local rep_rev
+ local svn_rev_str
+
modules=`echo $1|$__sed -e 's/:/ /g'`
repo=$2
cd $module
- if [ -d $module/.git ]; then
- if [ ! $__update_repositories -eq 0 ]; then
- log_to_file "Updating existing repository at $PWD/$module"
+ pkg_version=`$__dpkg_parsechangelog | $__grep Version: | cut -d" " -f2`
+ svn_rev=`echo $pkg_version | $__sed -nr 's/.*svn([0-9]+).*/\1/p'`
+ git=`echo $repo|$__grep "git://"`
+
+ if [ -n "$svn_rev" ]; then
+ svn_rev_str="(rev: $svn_rev)"
+ else
+ svn_rev_str=
+ fi
+
+ if [ $__force_remove -eq 1 ]; then
+ if [ -d $module ]; then
+ rm -rf $module
+ fi
+ fi
+
+ if [ -n "$git" ]; then
+ if [ -d $module/.git ]; then
+ if [ ! $__update_repositories -eq 0 ]; then
+ log_to_file "Updating existing repository at $PWD/$module"
+
+ msg_begin " Updating $module repository"
+ git_update_repository $module
+ msg_end $?
+ else
+ log_to_file "Skipping update of $module repository"
+ fi
+ elif [ -d $module ]; then
+ log_to_file "Removing invalid repository at $PWD/$module"
+ rm -rf $module
+ fi
- msg_begin " Updating $module repository"
- update_repository $module
+ if [ ! -d $module ]; then
+ msg_begin " Cloning $repo/$module.git"
+ git_clone_repository $repo/$module
msg_end $?
- else
- log_to_file "Skipping update of $module repository"
fi
- elif [ -d $module ]; then
- log_to_file "Removing invalid repository at $PWD/$module"
- rm -rf $module
- fi
+ else
+ if [ -d $module/.svn ]; then
+ rep_rev=`$__svn info $module | $__sed -nr 's/Revision: ([0-9]*)/\1/p'`
+ if [ ! $__update_repositories -eq 0 -a "x$rep_rev" != "x$svn_rev" ]; then
+ log_to_file "Updating existing repository at $PWD/$module"
+ msg_begin " Updating $module repository $svn_rev_str"
+ svn_update_repository $module $svn_rev
+ msg_end 0
+ rep_rev=`$__svn info $module | $__sed -nr 's/Revision: ([0-9]*)/\1/p'`
+ if [ "x$rep_rev" != "x$svn_rev" ]; then
+ warn "Unable to update the repository to rev. $svn_rev"
+ fi
+ else
+ log_to_file "Skipping update of $module repository"
+ fi
+ elif [ -d $module ]; then
+ log_to_file "Removing invalid repository at $PWD/$module"
+ rm -rf $module
+ fi
+
+ if [ ! -d $module ]; then
+ msg_begin " Checking out $repo$module $svn_rev_str"
+ svn_checkout_repository $repo$module $svn_rev
+ if [ $? -ne 0 ]; then
+ warn "Unable to checkput the repository to rev. $svn_rev"
+ else
+ msg_end 0
+ fi
+ fi
- if [ ! -d $module ]; then
- msg_begin " Cloning $repo/$module.git"
- clone_repository $repo/$module
- msg_end $?
fi
cd ..
done
}
+download_modules() {
+ # Download e17 modules
+ if [ ! -z $__lib_modules ];then
+ msg "Downloading e17 modules"
+ get_sources $__lib_modules $__svn_repo
+ fi
+
+ # Download python modules under proto/python/efl
+ if [ ! -z $__python_modules ];then
+ msg "Downloading python modules"
+ get_sources $__python_modules $__svn_repo$__e17_python_efl
+ fi
+
+ # Download python-efl-utils module$
+ if [ ! -z $__python_efl_utils_module ];then
+ get_sources $__python_efl_utils_module $__git_repo$__e17_python_efl_utils
+ fi
+
+ # Download python-dispatcher module
+ #get_sources $__python_dispatcher_module $__git_repo$__e17_python_dispatcher
+}
+
+clean_modules() {
+ msg_begin "Cleaning up modules directories"
+ for module in `echo $__all_modules|$__sed -e 's/:/ /g'`; do
+ if [ -d $module/$module ]; then
+ rm -rf $module/$module
+ fi
+ done
+ msg_end $?
+}