Change the base folder name to GIT_WEBHOOK_BASE_FOLDER

This commit is contained in:
2025-07-04 12:02:36 +09:00
parent 46bae8f06a
commit 42ce1e6cea
5 changed files with 49 additions and 49 deletions

View File

@@ -15,8 +15,8 @@ fi;
# abort on not set # abort on not set
error=0; error=0;
if [ -z "${GIT_REPOSITORY_FOLDER}" ]; then if [ -z "${GIT_WEBHOOK_BASE_FOLDER}" ]; then
echo "Missing GIT_REPOSITORY_FOLDER entry"; echo "Missing GIT_WEBHOOK_BASE_FOLDER entry";
error=1; error=1;
fi; fi;
if [ -z "${WWW_GROUP}" ]; then if [ -z "${WWW_GROUP}" ]; then
@@ -56,9 +56,9 @@ PEM_BASE="${BASE_FOLDER}../pem/";
JUMP_PEM_FILE="somen-jump.tequila.jp#scripts#webhook-git#ed25519.pem"; JUMP_PEM_FILE="somen-jump.tequila.jp#scripts#webhook-git#ed25519.pem";
# add trailing slash if missing # add trailing slash if missing
GIT_REPOSITORY_FOLDER="${GIT_REPOSITORY_FOLDER%/}/" GIT_WEBHOOK_BASE_FOLDER="${GIT_WEBHOOK_BASE_FOLDER%/}/"
if [ -d "${GIT_REPOSITORY_FOLDER}" ]; then if [ -d "${GIT_WEBHOOK_BASE_FOLDER}" ]; then
echo "Base folder already exists, update check"; echo "Base folder already exists, update check";
echo "[TODO] -> Not implemented exit"; echo "[TODO] -> Not implemented exit";
# check folders # check folders
@@ -71,27 +71,27 @@ else
echo "=> Create new folder structure"; echo "=> Create new folder structure";
# User for sudo, but only if SUDO is enabled # User for sudo, but only if SUDO is enabled
if [ "${USE_SUDO}" != "0" ]; then if [ "${USE_SUDO}" != "0" ]; then
echo "+ Add user ${WWW_GROUP}:${SUDO_USER} with base folder ${GIT_REPOSITORY_FOLDER}"; echo "+ Add user ${WWW_GROUP}:${SUDO_USER} with base folder ${GIT_WEBHOOK_BASE_FOLDER}";
useradd -d "${GIT_REPOSITORY_FOLDER}" -m -s /usr/sbin/nologin "${SUDO_USER}" useradd -d "${GIT_WEBHOOK_BASE_FOLDER}" -m -s /usr/sbin/nologin "${SUDO_USER}"
fi; fi;
if [ -d "${GIT_REPOSITORY_FOLDER}" ]; then if [ -d "${GIT_WEBHOOK_BASE_FOLDER}" ]; then
echo "+ Create Folder: ${GIT_REPOSITORY_FOLDER}"; echo "+ Create Folder: ${GIT_WEBHOOK_BASE_FOLDER}";
mkdir "${GIT_REPOSITORY_FOLDER}"; mkdir "${GIT_WEBHOOK_BASE_FOLDER}";
fi; fi;
echo "+ Set folder user/group"; echo "+ Set folder user/group";
# user is not mandatory, but we need to set the group # user is not mandatory, but we need to set the group
setfacl -m u:"${SUDO_USER}":rwx -R "${GIT_REPOSITORY_FOLDER}" setfacl -m u:"${SUDO_USER}":rwx -R "${GIT_WEBHOOK_BASE_FOLDER}"
setfacl -m -d u:"${SUDO_USER}":rwx -R "${GIT_REPOSITORY_FOLDER}" setfacl -m -d u:"${SUDO_USER}":rwx -R "${GIT_WEBHOOK_BASE_FOLDER}"
setfacl -m g:"${WWW_GROUP}":rx -R "${GIT_REPOSITORY_FOLDER}" setfacl -m g:"${WWW_GROUP}":rx -R "${GIT_WEBHOOK_BASE_FOLDER}"
# SSH # SSH
if [ "${USE_SUDO}" != "0" ]; then if [ "${USE_SUDO}" != "0" ]; then
echo "+ Add .ssh folder" echo "+ Add .ssh folder"
sudo -u "${SUDO_USER}" mkdir "${GIT_REPOSITORY_FOLDER}"/.ssh/ sudo -u "${SUDO_USER}" mkdir "${GIT_WEBHOOK_BASE_FOLDER}"/.ssh/
sudo -u "${SUDO_USER}" touch "${GIT_REPOSITORY_FOLDER}"/.ssh/config sudo -u "${SUDO_USER}" touch "${GIT_WEBHOOK_BASE_FOLDER}"/.ssh/config
sudo -u "${SUDO_USER}" chmod 700 "${GIT_REPOSITORY_FOLDER}"/.ssh/ sudo -u "${SUDO_USER}" chmod 700 "${GIT_WEBHOOK_BASE_FOLDER}"/.ssh/
sudo -u "${SUDO_USER}" chmod 600 "${GIT_REPOSITORY_FOLDER}"/.ssh/config sudo -u "${SUDO_USER}" chmod 600 "${GIT_WEBHOOK_BASE_FOLDER}"/.ssh/config
# add master jump host # add master jump host
cat >> "${GIT_REPOSITORY_FOLDER}"/.ssh/config << 'EOF' cat >> "${GIT_WEBHOOK_BASE_FOLDER}"/.ssh/config << 'EOF'
Host UdonGitJump Host UdonGitJump
Hostname somen-jump.tequila.jp Hostname somen-jump.tequila.jp
User webhook-git User webhook-git
@@ -99,9 +99,9 @@ Host UdonGitJump
Port 37337 Port 37337
EOF EOF
if [ -f "${PEM_BASE}${JUMP_PEM_FILE}" ]; then if [ -f "${PEM_BASE}${JUMP_PEM_FILE}" ]; then
sudo -u "${SUDO_USER}" cp "${PEM_BASE}${JUMP_PEM_FILE}" "${GIT_REPOSITORY_FOLDER}"/.ssh/; sudo -u "${SUDO_USER}" cp "${PEM_BASE}${JUMP_PEM_FILE}" "${GIT_WEBHOOK_BASE_FOLDER}"/.ssh/;
chown "${SUDO_USER}:" "${GIT_REPOSITORY_FOLDER}/.ssh/${JUMP_PEM_FILE}" chown "${SUDO_USER}:" "${GIT_WEBHOOK_BASE_FOLDER}/.ssh/${JUMP_PEM_FILE}"
sudo -u "${SUDO_USER}" chmod 600 "${GIT_REPOSITORY_FOLDER}/.ssh/${JUMP_PEM_FILE}" sudo -u "${SUDO_USER}" chmod 600 "${GIT_WEBHOOK_BASE_FOLDER}/.ssh/${JUMP_PEM_FILE}"
else else
echo "PEM FILE ${JUMP_PEM_FILE} must be added manually" echo "PEM FILE ${JUMP_PEM_FILE} must be added manually"
fi; fi;
@@ -110,29 +110,29 @@ EOF
echo "+ Other folders for clone base: ${CLONE_BASE}, logs, scripts, www/webhook-incoming" echo "+ Other folders for clone base: ${CLONE_BASE}, logs, scripts, www/webhook-incoming"
sudo -u "${SUDO_USER}" \ sudo -u "${SUDO_USER}" \
mkdir -p \ mkdir -p \
"${GIT_REPOSITORY_FOLDER}${CLONE_BASE}" \ "${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}" \
"${GIT_REPOSITORY_FOLDER}${LOG_FOLDER}" \ "${GIT_WEBHOOK_BASE_FOLDER}${LOG_FOLDER}" \
"${GIT_REPOSITORY_FOLDER}${SCRIPT_FOLDER}" \ "${GIT_WEBHOOK_BASE_FOLDER}${SCRIPT_FOLDER}" \
"${GIT_REPOSITORY_FOLDER}${CONFIG_FOLDER}" \ "${GIT_WEBHOOK_BASE_FOLDER}${CONFIG_FOLDER}" \
"${GIT_REPOSITORY_FOLDER}${WWW_WEBHOOK_INCOMING}" \ "${GIT_WEBHOOK_BASE_FOLDER}${WWW_WEBHOOK_INCOMING}" \
"${GIT_REPOSITORY_FOLDER}${WWW_ADMIN}"; "${GIT_WEBHOOK_BASE_FOLDER}${WWW_ADMIN}";
# set basic folder rights, clone folder is excluded # set basic folder rights, clone folder is excluded
sudo -u "${SUDO_USER}" chmod 700 \ sudo -u "${SUDO_USER}" chmod 700 \
"${GIT_REPOSITORY_FOLDER}${LOG_FOLDER}" \ "${GIT_WEBHOOK_BASE_FOLDER}${LOG_FOLDER}" \
"${GIT_REPOSITORY_FOLDER}${SCRIPT_FOLDER}" \ "${GIT_WEBHOOK_BASE_FOLDER}${SCRIPT_FOLDER}" \
"${GIT_REPOSITORY_FOLDER}${CONFIG_FOLDER}" \ "${GIT_WEBHOOK_BASE_FOLDER}${CONFIG_FOLDER}" \
"${GIT_REPOSITORY_FOLDER}${WWW_WEBHOOK_INCOMING}" \ "${GIT_WEBHOOK_BASE_FOLDER}${WWW_WEBHOOK_INCOMING}" \
"${GIT_REPOSITORY_FOLDER}${WWW_ADMIN}"; "${GIT_WEBHOOK_BASE_FOLDER}${WWW_ADMIN}";
# setfacl -m u:"${SUDO_USER}":rwx -R "${GIT_REPOSITORY_FOLDER}${CLONE_BASE}" # setfacl -m u:"${SUDO_USER}":rwx -R "${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}"
# setfacl -d -m u:"${SUDO_USER}":rwx -R "${GIT_REPOSITORY_FOLDER}${CLONE_BASE}" # setfacl -d -m u:"${SUDO_USER}":rwx -R "${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}"
# web user must have access to the clone folder, RWX # web user must have access to the clone folder, RWX
setfacl -m g:"${WWW_GROUP}":rwx -R "${GIT_REPOSITORY_FOLDER}${CLONE_BASE}" setfacl -m g:"${WWW_GROUP}":rwx -R "${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}"
setfacl -d -m g:"${WWW_GROUP}":rwx -R "${GIT_REPOSITORY_FOLDER}${CLONE_BASE}" setfacl -d -m g:"${WWW_GROUP}":rwx -R "${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}"
# Copy files # Copy files
echo "+ Copy basic script and config files"; echo "+ Copy basic script and config files";
# git_pull.sh, init.sh, new_clone.sh, webhook.default.cfg # git_pull.sh, init.sh, new_clone.sh, webhook.default.cfg
sudo -u "${SUDO_USER}"cp "${BASE_FOLDER}new_clone.sh" "${BASE_FOLDER}init.sh" "${BASE_FOLDER}git_clone.sh" "${GIT_REPOSITORY_FOLDER}${SCRIPT_FOLDER}"; sudo -u "${SUDO_USER}"cp "${BASE_FOLDER}new_clone.sh" "${BASE_FOLDER}init.sh" "${BASE_FOLDER}git_clone.sh" "${GIT_WEBHOOK_BASE_FOLDER}${SCRIPT_FOLDER}";
sudo -u "${SUDO_USER}"cp "${CONFIG_BASE}/webhook.default.cfg" "${GIT_REPOSITORY_FOLDER}${CONFIG_FOLDER}"; sudo -u "${SUDO_USER}"cp "${CONFIG_BASE}/webhook.default.cfg" "${GIT_WEBHOOK_BASE_FOLDER}${CONFIG_FOLDER}";
fi; fi;
# __END__ # __END__

View File

@@ -15,12 +15,12 @@ BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
. "${BASE_FOLDER}init.sh"; . "${BASE_FOLDER}init.sh";
# check that repository path exists # check that repository path exists
REPOSITORY_PATH="${GIT_REPOSITORY_FOLDER}${CLONE_BASE}${REPOSITORY}"; REPOSITORY_PATH="${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}${REPOSITORY}";
if [ ! -d "${REPOSITORY_PATH}$" ]; then if [ ! -d "${REPOSITORY_PATH}$" ]; then
echo "${REPOSITORY} not found in clone folder"; echo "${REPOSITORY} not found in clone folder";
exit; exit;
fi; fi;
LOG_FILE="${GIT_REPOSITORY_FOLDER}${LOG_FOLDER}${REPOSITORY}.log"; LOG_FILE="${GIT_WEBHOOK_BASE_FOLDER}${LOG_FOLDER}${REPOSITORY}.log";
# fetch to null # fetch to null
# ${GIT_COMMAND} -C "${REPOSITORY_PATH}" fetch -q "${REMOTE}" "${BRANCH}"; # ${GIT_COMMAND} -C "${REPOSITORY_PATH}" fetch -q "${REMOTE}" "${BRANCH}";

View File

@@ -33,13 +33,13 @@ if [ -n "${USE_SUDO}" ]; then
fi; fi;
# add trailing slash if not set # add trailing slash if not set
GIT_REPOSITORY_FOLDER="${GIT_REPOSITORY_FOLDER%/}/" GIT_WEBHOOK_BASE_FOLDER="${GIT_WEBHOOK_BASE_FOLDER%/}/"
CLONE_BASE="clone-base/" CLONE_BASE="clone-base/"
LOG_FOLDER="log/" LOG_FOLDER="log/"
# base folder does not exist # base folder does not exist
if [ ! -d "${GIT_REPOSITORY_FOLDER}" ]; then if [ ! -d "${GIT_WEBHOOK_BASE_FOLDER}" ]; then
echo "Base folder: ${GIT_REPOSITORY_FOLDER} not found"; echo "Base folder: ${GIT_WEBHOOK_BASE_FOLDER} not found";
error=1; error=1;
fi; fi;
@@ -50,14 +50,14 @@ if [ -n "${BRANCH}" ]; then
fi; fi;
# check that log folder exists # check that log folder exists
if [ ! -d "${GIT_REPOSITORY_FOLDER}${LOG_FOLDER}" ]; then if [ ! -d "${GIT_WEBHOOK_BASE_FOLDER}${LOG_FOLDER}" ]; then
echo "Log folder does not exist: ${GIT_REPOSITORY_FOLDER}${LOG_FOLDER}"; echo "Log folder does not exist: ${GIT_WEBHOOK_BASE_FOLDER}${LOG_FOLDER}";
error=1; error=1;
fi; fi;
# check that the base clone folder exists # check that the base clone folder exists
if [ ! -d "${GIT_REPOSITORY_FOLDER}${CLONE_BASE}" ]; then if [ ! -d "${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}" ]; then
echo "Clone base folder does not exist: ${GIT_REPOSITORY_FOLDER}${CLONE_BASE}"; echo "Clone base folder does not exist: ${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}";
error=1; error=1;
fi; fi;

View File

@@ -26,8 +26,8 @@ echo "* Validate SSH PEM Key exist and SSH config";
echo "New clone"; echo "New clone";
GIT_COMMAND=("${GIT_COMMAND_BASE[@]}" "clone" "-b" "${BRANCH}" "--single-branch" "--depth" "1" "--origin" "${REMOTE}" "${REMOTE_HOST}:${REPOSITORY}" "${GIT_REPOSITORY_FOLDER}${CLONE_BASE}") GIT_COMMAND=("${GIT_COMMAND_BASE[@]}" "clone" "-b" "${BRANCH}" "--single-branch" "--depth" "1" "--origin" "${REMOTE}" "${REMOTE_HOST}:${REPOSITORY}" "${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}")
echo "Command: ${GIT_COMMAND[*]}" echo "Command: ${GIT_COMMAND[*]}"
# echo ${GIT_COMMAND_BASE} clone -b "${BRANCH}" --single-branch --depth 1 --origin "${REMOTE}" "${REMOTE_HOST}:${REPOSITORY}" "${GIT_REPOSITORY_FOLDER}${CLONE_BASE}"; # echo ${GIT_COMMAND_BASE} clone -b "${BRANCH}" --single-branch --depth 1 --origin "${REMOTE}" "${REMOTE_HOST}:${REPOSITORY}" "${GIT_WEBHOOK_BASE_FOLDER}${CLONE_BASE}";
# __END__ # __END__

View File

@@ -1,4 +1,4 @@
GIT_REPOSITORY_FOLDER="" GIT_WEBHOOK_BASE_FOLDER=""
WWW_GROUP="" WWW_GROUP=""
SUDO_USER="" SUDO_USER=""
USE_SUDO=0 USE_SUDO=0