#!/bin/bash
ls_rootpath=$(cd $(dirname $0);pwd)
yum install vi tar wget make gcc ca-certificates tini libstdc++ libc6-compat -y
############## runtime ################

export N8N_VERSION=snapshot
export N8N_RELEASE_TYPE=dev
export NODE_ENV=production
export N8N_RELEASE_TYPE=${N8N_RELEASE_TYPE}
export SHELL=/bin/sh
export LAUNCHER_VERSION=1.4.3
export TARGETPLATFORM=$(uname -m)
if [[ ${TARGETPLATFORM} == "aarch64" ]];then
   ls_arch="arm64"
else
   ls_arch="x86"
fi
############## python #################

yum install -y  automake autoconf libtool make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
tar xzvf ${ls_rootpath}/${ls_arch}/python/Python-3.13.12.tgz -C ${ls_rootpath}/${ls_arch}/python/
cd ${ls_rootpath}/${ls_arch}/python/Python-3.13.12
./configure --prefix=/usr/local/python3  --enable-optimizations && make -j 8 && make install
rm -f /usr/bin/python3
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
rm -f /usr/bin/pip3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
############### launcher-download  ################

cp ${ls_rootpath}/${ls_arch}/uv /usr/local/bin
cp ${ls_rootpath}/${ls_arch}/node /usr/local/bin

mkdir -p /usr/local/lib/node_modules/corepack
cp -a ${ls_rootpath}/${ls_arch}/corepack/* /usr/local/lib/node_modules/corepack/
rm -f /usr/local/bin/corepack
ln -s /usr/local/lib/node_modules/corepack/dist/corepack.js /usr/local/bin/corepack
rm -f /usr/local/bin/pnpm
ln -s /usr/local/lib/node_modules/corepack/dist/pnpm.js /usr/local/bin/pnpm

groupadd -g 1000 runner
adduser  -u 1000 runner -g runner -d /home/runner

mkdir /opt/runners/task-runner-javascript
cp -a ${ls_rootpath}/${ls_arch}/task-runner-javascript/* /opt/runners/task-runner-javascript/
chown root:root  /opt/runners/task-runner-javascript
mkdir /opt/runners/task-runner-python
cp -a ${ls_rootpath}/${ls_arch}/task-runner-python/* /opt/runners/task-runner-python/
chown root:root /opt/runners/task-runner-python

mkdir /launch-bin
tar xzvf ${ls_rootpath}/${ls_arch}/task-runner-launcher-1.4.3-linux-arm64.tar.gz -C /launch-bin
cp /launch-bin/* /usr/local/bin
cp ${ls_rootpath}/${ls_arch}/n8n-task-runners.json /etc/
chown root:root /etc/n8n-task-runners.json
ln -s /opt/runners/task-runner-python/.venv/bin/python /usr/bin/python3
ln -s /opt/runners/task-runner-python/.venv/bin/python /usr/bin/python3
ln -s /opt/runners/task-runner-python/.venv/bin/python3.13 /usr/bin/python3

###################### runners.service ##############
cp ${ls_rootpath}/startrunners.sh /usr/local/bin
cp ${ls_rootpath}/runners.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl enable runners

echo "install over"
