From e5f669d1d78cae83f6c7d84c20833a9d72de2a64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20-=20Le=20Filament?= <theo@le-filament.com> Date: Mon, 12 Aug 2024 19:28:58 +0200 Subject: [PATCH] build(get_addons): remove module directory when already exists, improve git repo cloning and use environment variable for path to the cloned repository --- get_addons | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/get_addons b/get_addons index b3e52d4..7d86bb6 100644 --- a/get_addons +++ b/get_addons @@ -5,6 +5,7 @@ set -e ODOO_ROOT_DIR=${ODOO_ROOT_DIR:-'/opt/odoo'} SAVE_COMMITS_DIR=${SAVE_COMMITS_DIR:-'/opt/odoo_commits'} SAVE_COMMITS_FILENAME=${SAVE_COMMITS_FILENAME:-'custom_addons'} +TMP_REPO_PATH=${TEMP_REPO_PATH:-'/tmp/repo'} save_commit() { repo="$1" @@ -22,18 +23,36 @@ dst="$1" shift modules="$@" -git clone --filter=tree:0 "${repo}" /tmp/repo -git -C /tmp/repo checkout "${ref}" -commit="$(git -C /tmp/repo rev-parse HEAD)" +set +e +git clone --branch "${ref}" --filter=tree:0 "${repo}" "${TMP_REPO_PATH}" +if [ "$?" -ne 0 ]; then + git clone --filter=tree:0 "${repo}" "${TMP_REPO_PATH}" + if [ "$?" -ne 0 ]; then + git clone --single-branch --branch "${ref}" --depth 1 "${repo}" "${TMP_REPO_PATH}" + if [ "$?" -ne 0 ]; then + git clone "${repo}" "${TMP_REPO_PATH}" + fi + fi +fi +set -e + +git -C "${TMP_REPO_PATH}" checkout "${ref}" +commit="$(git -C ${TMP_REPO_PATH} rev-parse HEAD)" if [ -n "$modules" ]; then for module in $modules; do - mv "/tmp/repo/${module}" "${ODOO_ROOT_DIR}/${dst}/" + if [ -d "${ODOO_ROOT_DIR}/${dst}/${module}" ]; then + rm -r "${ODOO_ROOT_DIR}/${dst}/${module}" + fi + mv "${TMP_REPO_PATH}/${module}" "${ODOO_ROOT_DIR}/${dst}/" save_commit "$repo" "$commit" "$module" "$dst" done else module="$(basename $dst)" + if [ -d "${ODOO_ROOT_DIR}/${dst}" ]; then + rm -r "${ODOO_ROOT_DIR}/${dst}" + fi mkdir -p "/${ODOO_ROOT_DIR}/${dst}" - mv /tmp/repo/* "${ODOO_ROOT_DIR}/${dst}/" + mv ${TMP_REPO_PATH}/* "${ODOO_ROOT_DIR}/${dst}/" save_commit "$repo" "$commit" "$module" "$dst" fi -rm -r /tmp/repo +rm -r "${TMP_REPO_PATH}" -- GitLab