diff --git a/scripts/prepare_offline_packages.sh b/scripts/prepare_offline_packages.sh index 24a5c0e..ac1793d 100644 --- a/scripts/prepare_offline_packages.sh +++ b/scripts/prepare_offline_packages.sh @@ -25,9 +25,13 @@ if [ ! -f /etc/centos-release ]; then exit 1 fi +# Get the absolute path of the project root directory +PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +PROJECT_NAME="$(basename "${PROJECT_ROOT}")" + # Create packages directory -PACKAGES_DIR="packages" -log_info "Creating packages directory..." +PACKAGES_DIR="${PROJECT_ROOT}/packages" +log_info "Creating packages directory: ${PACKAGES_DIR}" mkdir -p "${PACKAGES_DIR}" cd "${PACKAGES_DIR}" || { log_error "Failed to enter packages directory" @@ -61,7 +65,7 @@ MarkupSafe==2.0.1 EOL # Create Python packages directory -PYTHON_PACKAGES_DIR="python_packages" +PYTHON_PACKAGES_DIR="${PACKAGES_DIR}/python_packages" mkdir -p "${PYTHON_PACKAGES_DIR}" # Download Python packages @@ -78,24 +82,26 @@ ls *.rpm > offline-deps.txt || { exit 1 } -# Return to parent directory -cd ../../ +# Return to project root directory +cd "${PROJECT_ROOT}" || { + log_error "Failed to return to project root directory" + exit 1 +} # Create archive of the project log_info "Creating project archive..." -PROJECT_NAME="CollisionAvoidance" -if [ -d "${PROJECT_NAME}" ]; then - tar czf "${PROJECT_NAME}.tar.gz" \ - "${PROJECT_NAME}" \ - "${PACKAGES_DIR}" || { - log_error "Failed to create project archive" - exit 1 - } - log_info "Successfully created ${PROJECT_NAME}.tar.gz" -else - log_error "Project directory ${PROJECT_NAME} not found" +ARCHIVE_NAME="${PROJECT_NAME}.tar.gz" +ARCHIVE_PATH="${PROJECT_ROOT}/../${ARCHIVE_NAME}" + +tar czf "${ARCHIVE_PATH}" \ + --exclude=".git" \ + --exclude="build" \ + --exclude="*.tar.gz" \ + -C "${PROJECT_ROOT}/.." "${PROJECT_NAME}" || { + log_error "Failed to create project archive" exit 1 -fi +} +log_info "Successfully created ${ARCHIVE_NAME}" # Print summary echo -e "\n${GREEN}Offline package preparation completed!${NC}" @@ -104,8 +110,8 @@ echo " - ${PACKAGES_DIR}/offline-deps.txt (System package list)" echo " - ${PACKAGES_DIR}/requirements.txt (Python package list)" echo " - ${PACKAGES_DIR}/*.rpm (System packages)" echo " - ${PACKAGES_DIR}/${PYTHON_PACKAGES_DIR}/* (Python packages)" -echo " - ${PROJECT_NAME}.tar.gz (Complete project archive)" +echo " - ${ARCHIVE_PATH} (Complete project archive)" echo -e "\nNext steps:" -echo "1. Transfer ${PROJECT_NAME}.tar.gz to the target server" +echo "1. Transfer ${ARCHIVE_NAME} to the target server" echo "2. Extract the archive on the target server" echo "3. Run the deployment script" \ No newline at end of file