#!/bin/bash set -e # Dừng script nếu có lỗi source /home/phuc/gitea_CICD/service_run/giteaService.conf export HOME=$PROJECT_PATH indexjs_path="$HOOK_PATH/index.js" project_path="$HOOK_PATH" USERNAME=$(echo "$GIT_USERNAME" | sed 's/@/%40/g') PASSWORD=$(echo "$GIT_PASSWORD" | sed 's/@/%40/g') REPOSITORY_AUTH="https://$USERNAME:$PASSWORD@$(echo $GIT_REPOSITORY | sed 's#https://##')" # Debug PATH nếu cần # echo "Current PATH: $PATH" # # Thiết lập lại PATH nếu thiếu (thường gặp khi chạy từ systemd) # if ! command -v node &> /dev/null; then # echo "Node.js not found in PATH, attempting to locate..." # NODE_PATH=$(find /usr /opt /home -type f -name "node" -executable 2>/dev/null | head -n 1) # if [ -x "$NODE_PATH" ]; then # export PATH=$(dirname "$NODE_PATH"):$PATH # echo "Added $(dirname "$NODE_PATH") to PATH" # fi # fi # if ! command -v node &> /dev/null; then # echo -e "\e[41mNode.js is not installed or not in PATH\e[0m" # exit 1 # else # echo -e "\e[32mNode.js is installed!\e[0m" # node -v # fi # # Kiểm tra npm tương tự # if ! command -v npm &> /dev/null; then # echo "npm not found in PATH, attempting to locate..." # NPM_PATH=$(find /usr /opt /home -type f -name "npm" -executable 2>/dev/null | head -n 1) # if [ -x "$NPM_PATH" ]; then # export PATH=$(dirname "$NPM_PATH"):$PATH # echo "Added $(dirname "$NPM_PATH") to PATH" # fi # fi # if ! command -v npm &> /dev/null; then # echo -e "\e[41mnpm is not installed or not in PATH\e[0m" # exit 1 # else # echo -e "\e[32mnpm is installed!\e[0m" # npm -v # fi cd "$PROJECT_PATH" git config --global --add safe.directory "$HOME" git remote set-url origin "$REPOSITORY_AUTH" if git ls-remote -q --exit-code "$REPOSITORY_AUTH" > /dev/null; then echo -e "\e[32mOK: Repository $GIT_REPOSITORY exists\e[0m" else echo -e "\e[41mError: Repository $GIT_REPOSITORY does not exist.\e[0m" exit 1 fi # Chạy index.js nếu tồn tại if [ -f "$indexjs_path" ]; then echo "Run file $indexjs_path..." echo $NPM_BIN echo $NODE_BIN export PATH="$(dirname $NODE_BIN):$PATH" cd "$project_path" && $NPM_BIN install && $NODE_BIN "$indexjs_path" else echo -e "\e[31mFile $indexjs_path not exists\e[0m" exit 1 fi