From 821d3a8d1b3173819fc5d7061a47e7e713a9434c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Tue, 20 Sep 2011 21:36:06 +0200 Subject: [PATCH 11/11] Remove git.eclass old clones if git-2 clone succeeds. --- eclass/git-2.eclass | 36 ++++++++++++++++++++++++++---------- 1 files changed, 26 insertions(+), 10 deletions(-) diff --git a/eclass/git-2.eclass b/eclass/git-2.eclass index 3c8e0c5..fde72d6 100644 --- a/eclass/git-2.eclass +++ b/eclass/git-2.eclass @@ -251,6 +251,22 @@ git-2_prepare_storedir() { # allow writing into EGIT_STORE_DIR addwrite "${EGIT_STORE_DIR}" + + # calculate git.eclass store dir for data + # We will try to clone the old repository, + # and we will remove it if we don't need it anymore. + EGIT_OLD_CLONE= + if [[ ${EGIT_STORE_DIR} == */egit-src ]]; then + local old_store_dir=${EGIT_STORE_DIR/%egit-src/git-src} + local old_location=${old_store_dir}/${EGIT_PROJECT:-${PN}} + + if [[ -d ${old_location} ]]; then + EGIT_OLD_CLONE=${old_location} + # required to remove the old clone + addwrite "${old_store_dir}" + fi + fi + # calculate the proper store dir for data # If user didn't specify the EGIT_DIR, we check if he did specify # the EGIT_PROJECT or get the folder name from EGIT_REPO_URI. @@ -263,16 +279,10 @@ git-2_prepare_storedir() { fi EGIT_DIR=${EGIT_STORE_DIR}/${clone_dir} - # Try to migrate from git.eclass git-src/ - if [[ ! -d ${EGIT_DIR} && ${EGIT_STORE_DIR} == */egit-src ]]; then - local old_store_dir=${EGIT_STORE_DIR/%egit-src/git-src} - local old_location=${old_store_dir}/${EGIT_PROJECT:-${PN}} - - if [[ -d ${old_location} ]]; then - elog "${FUNCNAME}: ${CATEGORY}/${PVR} will be cloned from old location." - elog "It will be necessary to rebuild the package to fetch updates." - EGIT_REPO_URI="${old_location} ${EGIT_REPO_URI}" - fi + if [[ ${EGIT_OLD_CLONE} ]]; then + elog "${FUNCNAME}: ${CATEGORY}/${PVR} will be cloned from old location." + elog "It will be necessary to rebuild the package to fetch updates." + EGIT_REPO_URI="${EGIT_OLD_CLONE} ${EGIT_REPO_URI}" fi fi export EGIT_DIR=${EGIT_DIR} @@ -317,6 +327,12 @@ git-2_initial_clone() { [[ ${EGIT_REPO_URI_SELECTED} ]] \ || die "${FUNCNAME}: can't fetch from ${EGIT_REPO_URI}" + + # Cleanup after git.eclass + if [[ ${EGIT_OLD_CLONE} ]]; then + einfo "${FUNCNAME}: removing old clone in ${EGIT_OLD_CLONE}." + rm -rf "${EGIT_OLD_CLONE}" + fi } # @FUNCTION: git-2_update_repo -- 1.7.6.1