119 lines
3.0 KiB
Bash
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 |