programm-webhook/webhooks-git/entrypoint.sh

119 lines
3.0 KiB
Bash

#!/bin/sh
#
# Create hosts.json with by replacing environment variables in template file
#
# Define the template file path
template_file="/etc/webhook/hooks.json.tmpl"
# Define the output file path
output_file="/etc/webhook/hooks.json"
# Check if the template file exists
if [ ! -f "$template_file" ];
then
echo "Template file $template_file not found."
# exit 1
else
envsubst < "$template_file" > "$output_file"
echo "Generated $output_file"
fi
#
# Copy ssh keys and config
#
path_ssh="/root/.ssh"
path_programm_key="/data/ssh/programm-webhook.deploy.ed25519"
path_programm_pub="/data/ssh/programm-webhook.deploy.ed25519.pub"
path_assets_key="/data/ssh/assets-webhook.deploy.ed25519"
path_assets_pub="/data/ssh/assets-webhook.deploy.ed25519.pub"
path_ssh_config="/data/ssh/config"
# Create .ssh folder if not present
if [ ! -d "$path_ssh" ]; then
# Create the folder
mkdir -p "$path_ssh"
echo "Folder created: $path_ssh"
fi
# Copy programm key
if [ ! -f "$path_programm_key" ];
then
echo "Error: repository key $path_programm_key does not exist"
else
cp "$path_programm_key" "${path_ssh}/"
fi
# Copy programm public key
if [ ! -f "$path_programm_pub" ];
then
echo "Error: repository public key $path_programm_pub does not exist"
else
cp "$path_programm_pub" "${path_ssh}/"
fi
# Copy assets key
if [ ! -f "$path_assets_key" ];
then
echo "Error: assets key $path_assets_key does not exist"
else
cp "$path_assets_key" "${path_ssh}/"
fi
# Copy assets public key
if [ ! -f "$path_assets_pub" ];
then
echo "Error: assets public key $path_assets_pub does not exist"
else
cp "$path_assets_pub" "${path_ssh}/"
fi
# Copy ssh config
if [ ! -f "$path_ssh_config" ];
then
echo "Error: ssh config $path_ssh_config does not exist"
else
cp "$path_ssh_config" "${path_ssh}/"
fi
# Create or append known_hosts
echo "Validating: $GIT_SERVER_PROGRAMM"
ssh-keyscan -H "$GIT_SERVER_PROGRAMM" >> "${path_ssh}"/known_hosts
echo "Validating: $GIT_SERVER_ASSETS"
ssh-keyscan -H "$GIT_SERVER_ASSETS" >> "${path_ssh}"/known_hosts
echo "git and ssh configured."
echo "|--- Programm webhook public key (deploy key): --------------------|"
cat "${path_ssh}"/programm-webhook.deploy.ed25519.pub
echo "|------------------------------------------------------------------|"
echo "|--- Assets webhook public key (deploy key): ----------------------|"
cat "${path_ssh}"/assets-webhook.deploy.ed25519.pub
echo "|---- Config ------------------------------------------------------|"
cat "${path_ssh}"/config
echo "|---- known_hosts -------------------------------------------------|"
cat "${path_ssh}"/known_hosts
echo "|------------------------------------------------------------------|"
# Initialize assets
echo "Initialize assets directory"
./assets-init.sh
# Initialize branches
echo "Initialize branches of programm"
./programm-init.sh
# Generate index.html
./generate_index_html.sh
#
# Start webhooks
#
echo "Starting webhooks service"
exec /usr/local/bin/webhook -verbose -hooks=/etc/webhook/hooks.json -hotreload