TOMODACHI SHELL
Free Palestine !! - Free Gaza !!
Current File : //etc/../opt/managed_servers/bootstrap.sh |
#!/bin/bash
set -e
PROJECT_ROOT="$(dirname "$(readlink -f "$0")")"
. "$PROJECT_ROOT"/utils.sh
write_log "> Setting up Python"
os_id=$(awk -F'[:"]' '/^PLATFORM_ID=/{print $3}' /etc/os-release)
filename=$(basename "$(find "$PROJECT_ROOT" -name "python-*_${os_id}.tar.gz")")
write_log " >> Extracting archive: $filename"
tar xfz "$PROJECT_ROOT/$filename"
write_log " >> Installing dependencies"
curl -LsSf https://astral.sh/uv/install.sh | sh
UV_PROJECT_ENVIRONMENT="$PROJECT_ROOT"/python/ UV_PROJECT="$PROJECT_ROOT" /root/.local/bin/uv sync --frozen --no-dev
write_log "+ Done!"
write_log "> Adding app log to logrotate"
cat <<- CONF > /etc/logrotate.d/"$(basename "$LOG_FILE")"
/var/log/$(basename "$LOG_FILE") {
monthly
maxsize 100M
create 644 root root
rotate 12
missingok
}
CONF
write_log '> Checking cron job'
if cron="$(crontab -l 2>/dev/null | grep "$PROJECT_ROOT"/python/bin/python)"; then
write_log "Cron job is already set up:"
echo "$cron"
else
write_log "Setting up cron job"
(crontab -l 2>/dev/null; echo "*/$CRON_INTERVAL_MIN * * * * PYTHONPATH=${PROJECT_ROOT} ${PROJECT_ROOT}/python/bin/python -m 'app.main'") | crontab -
fi
write_log "> Checking configuration"
check_exit logrotate --debug /etc/logrotate.d/"$(basename "$LOG_FILE")"
find "$PROJECT_ROOT" -name "python-*.tar.gz" -delete
write_log "+ App has been configured"
TOMODACHI | Tempest Hacker