From 4071d8ca3e20530bfce5da0345a0c8bff8983581 Mon Sep 17 00:00:00 2001 From: Takeshi Nakatani Date: Mon, 10 Feb 2025 19:41:33 +0900 Subject: [PATCH] Improved setup_k2hr3_cli_component.sh tool --- buildutils/setup_k2hr3_cli_component.sh | 82 ++++++++++++++++++++----- 1 file changed, 66 insertions(+), 16 deletions(-) diff --git a/buildutils/setup_k2hr3_cli_component.sh b/buildutils/setup_k2hr3_cli_component.sh index 2e0d749..ca2f866 100755 --- a/buildutils/setup_k2hr3_cli_component.sh +++ b/buildutils/setup_k2hr3_cli_component.sh @@ -137,9 +137,9 @@ if [ -n "${_TMP_K2HR3_CLI_REPO_NAME}" ]; then K2HR3_CLI_REPO_NAME="${_TMP_K2HR3_CLI_REPO_NAME}" fi -#-------------------------------------------------------------- +#============================================================== # Main processing -#-------------------------------------------------------------- +#============================================================== # # Cleanup # @@ -166,6 +166,9 @@ if [ "${IS_CLEANUP}" -eq 1 ]; then exit 0 fi +#-------------------------------------------------------------- +# Check k2hr3_cli source code +#-------------------------------------------------------------- # # Check .git/config file # @@ -177,7 +180,7 @@ if [ -d "${GIT_DIR}" ]; then fi # -# Check git domain and organaization +# Check options and git domain / organaization # if [ "${USE_GIT_CONFIG}" -eq 1 ]; then # @@ -185,48 +188,95 @@ if [ "${USE_GIT_CONFIG}" -eq 1 ]; then # echo "[INFO] ${PRGNAME} - Check .git/config for git domain and organaiztion" 1>&2 - GIT_URL_THIS_REPO=$(grep -i '^[[:space:]]*url[[:space:]]*=[[:space:]]*' .git/config | sed -e 's/^[[:space:]]*url[[:space:]]*=[[:space:]]*//gi') + GIT_URL_THIS_REPO=$(grep -i '^[[:space:]]*url[[:space:]]*=[[:space:]]*' .git/config | head -1 | sed -e 's/^[[:space:]]*url[[:space:]]*=[[:space:]]*//gi' | tr -d '\n') if [ -n "${GIT_URL_THIS_REPO}" ]; then # # Get git domain and organaization # - GIT_DOMAIN_NAME=$(echo "${GIT_URL_THIS_REPO}" | sed -e 's/^git@//g' -e 's#^http[s]*://##g' -e 's/:/ /g' -e 's#/# #g' | awk '{print $1}') - GIT_ORG_NAME=$(echo "${GIT_URL_THIS_REPO}" | sed -e 's/^git@//g' -e 's#^http[s]*://##g' -e 's/:/ /g' -e 's#/# #g' | awk '{print $2}') + GIT_DOMAIN_NAME=$(echo "${GIT_URL_THIS_REPO}" | sed -e 's/^git@//g' -e 's#^http[s]*://##g' -e 's/:/ /g' -e 's#/# #g' | awk '{print $1}' | tr -d '\n') + GIT_ORG_NAME=$(echo "${GIT_URL_THIS_REPO}" | sed -e 's/^git@//g' -e 's#^http[s]*://##g' -e 's/:/ /g' -e 's#/# #g' | awk '{print $2}' | tr -d '\n') if [ -z "${GIT_DOMAIN_NAME}" ] || [ -z "${GIT_ORG_NAME}" ]; then echo "[WARNING] ${PRGNAME} - Unknown git dmain and organaization in .git/config" 1>&2 USE_ARCHIVE=1 - GIT_DOMAIN_NAME=${DEFAULT_GIT_DOMAIN} - GIT_ORG_NAME=${DEFAULT_K2HR3_CLI_ORG} + GIT_DOMAIN_NAME="${DEFAULT_GIT_DOMAIN}" + GIT_ORG_NAME="${DEFAULT_K2HR3_CLI_ORG}" fi else echo "[WARNING] ${PRGNAME} - Unknown git url in .git/config" 1>&2 USE_ARCHIVE=1 - GIT_DOMAIN_NAME=${DEFAULT_GIT_DOMAIN} - GIT_ORG_NAME=${DEFAULT_K2HR3_CLI_ORG} + GIT_DOMAIN_NAME="${DEFAULT_GIT_DOMAIN}" + GIT_ORG_NAME="${DEFAULT_K2HR3_CLI_ORG}" fi else echo "[INFO] ${PRGNAME} - .git/config is not existed." 1>&2 USE_ARCHIVE=1 - GIT_DOMAIN_NAME=${DEFAULT_GIT_DOMAIN} - GIT_ORG_NAME=${DEFAULT_K2HR3_CLI_ORG} + GIT_DOMAIN_NAME="${DEFAULT_GIT_DOMAIN}" + GIT_ORG_NAME="${DEFAULT_K2HR3_CLI_ORG}" fi +# +# Check environments +# if [ "${USE_ARCHIVE}" -eq 1 ] && [ "${SPECIFIED_K2HR3_CLI_PATH_ENV}" -eq 1 ] && [ -n "${DEFAULT_GIT_DOMAIN}" ] && [ -n "${DEFAULT_K2HR3_CLI_ORG}" ]; then echo "[INFO] ${PRGNAME} - Since the k2hr3_cli repository path is specified in the environment, use it to clone instead of downloading the archive." 1>&2 USE_ARCHIVE=0 - GIT_DOMAIN_NAME=${DEFAULT_GIT_DOMAIN} - GIT_ORG_NAME=${DEFAULT_K2HR3_CLI_ORG} + GIT_DOMAIN_NAME="${DEFAULT_GIT_DOMAIN}" + GIT_ORG_NAME="${DEFAULT_K2HR3_CLI_ORG}" fi # -# Git clone / Download archive +# Check local archive file +# +# [NOTE] +# Archive files have the highest priority and will ignore all options if the file exists. # +CHECK_START_TOP_DIR="${SRCTOP}" +USE_LOCAL_ARCHIVE_FILE=0 + +while [ "${USE_LOCAL_ARCHIVE_FILE}" -eq 0 ]; do + LOCAL_ARCHIVE_FILE="${CHECK_START_TOP_DIR}/${K2HR3_CLI_REPO_NAME}.tgz" + if [ -f "${LOCAL_ARCHIVE_FILE}" ]; then + USE_LOCAL_ARCHIVE_FILE=1 + else + CHECK_START_TOP_DIR=$(dirname "${CHECK_START_TOP_DIR}") + if [ -z "${CHECK_START_TOP_DIR}" ] || [ "${CHECK_START_TOP_DIR}" = "/" ]; then + # + # Not found + # + LOCAL_ARCHIVE_FILE="" + break + fi + fi +done + +#-------------------------------------------------------------- +# Get k2hr3_cli source code +#-------------------------------------------------------------- mkdir -p "${EXPAND_TOP_DIR}" K2HR3_CLI_EXPAND_DIR="" -if [ "${USE_ARCHIVE}" -ne 1 ]; then + +if [ "${USE_LOCAL_ARCHIVE_FILE}" -eq 1 ]; then + # + # Expand local archive file + # + CURRENT_DIR=$(pwd) + cd "${EXPAND_TOP_DIR}" || exit 1 + + if tar xvfz "${LOCAL_ARCHIVE_FILE}" >/dev/null; then + if [ -d "${K2HR3_CLI_REPO_NAME}" ]; then + K2HR3_CLI_EXPAND_DIR="${EXPAND_TOP_DIR}/${K2HR3_CLI_REPO_NAME}" + else + echo "[ERROR] ${PRGNAME} - Not found ${EXPAND_TOP_DIR}/${K2HR3_CLI_REPO_NAME}" 1>&2 + fi + else + echo "[ERROR] ${PRGNAME} - Failed to expand ${EXPAND_TOP_DIR}/${K2HR3_CLI_ZIP_NAME} from ${LOCAL_ARCHIVE_FILE}" 1>&2 + fi + cd "${CURRENT_DIR}" || exit 1 + +elif [ "${USE_ARCHIVE}" -ne 1 ]; then # # Git clone k2hr3_cli #