#!/bin/bash set -e check_env_var() { if [ -z "${!1// /}" ]; then echo "Error: $1 is not set or is empty" exit 1 fi } check_env_var OSS_ENDPOINT check_env_var OSS_ACCESS_KEY check_env_var OSS_SECRET_KEY check_env_var WORKER_NAME check_env_var BINANCE_FUTURES_DIR # Check if BINANCE_FUTURES_DIR directory exists if [ ! -d "$BINANCE_FUTURES_DIR" ]; then echo "Error: BINANCE_FUTURES_DIR directory '$BINANCE_FUTURES_DIR' does not exist" exit 1 fi # Set working directory with default value WORKING_DIR=${WORKING_DIR:-/kaggle/working} # Check if WORKING_DIR directory exists if [ ! -d "$WORKING_DIR" ]; then echo "Error: WORKING_DIR directory '$WORKING_DIR' does not exist" exit 1 fi pip install \ git+https://gitea.oopsapi.com/yhydev/myscripts.git \ prefect_shell \ freqtrade \ prefect; if [ ! -d $WORKING_DIR/user_data ]; then freqtrade create-userdir --userdir $WORKING_DIR/user_data; fi mkdir -p $WORKING_DIR/user_data/data/binance; # Check if the symlink exists and points to the correct directory SYMLINK_PATH="$WORKING_DIR/user_data/data/binance/futures" if [ -L "$SYMLINK_PATH" ]; then # Get the actual target of the symlink CURRENT_TARGET=$(readlink "$SYMLINK_PATH") if [ "$CURRENT_TARGET" != "$BINANCE_FUTURES_DIR" ]; then echo "Symlink exists but points to wrong target. Removing and recreating..." rm -f "$SYMLINK_PATH" ln -s "$BINANCE_FUTURES_DIR" "$SYMLINK_PATH" fi else # Symlink doesn't exist, create it ln -s "$BINANCE_FUTURES_DIR" "$SYMLINK_PATH" fi; cd $WORKING_DIR; if [ ! -f ~/.local/bin/mc ]; then mkdir -p ~/.local/bin wget https://dl.min.io/aistor/mc/release/linux-amd64/mc -O $HOME/.local/bin/mc chmod +x ~/.local/bin/mc fi export PATH=$PATH:$HOME/.local/bin mc alias set oss $OSS_ENDPOINT $OSS_ACCESS_KEY $OSS_SECRET_KEY --api S3v4 # Check if OSS is accessible echo "Checking OSS connectivity..." if ! mc ls oss/ > /dev/null 2>&1; then echo "Error: Unable to connect to OSS at $OSS_ENDPOINT" exit 1 fi echo "OSS connection successful!" prefect worker start --name $WORKER_NAME --pool freqtrade -l 3