TOMODACHI SHELL

Free Palestine !! - Free Gaza !!


 
OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /etc/../opt/managed_servers/

 Home   ☍ Command   ☍ Upload File   ☍Info Server   ☍ Buat File   ☍ Mass deface   ☍ Jumping   ☍ Config   ☍ Symlink   ☍ About 

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