70 lines
2.1 KiB
Bash
70 lines
2.1 KiB
Bash
#!/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/$BUCKET_NAME > /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 |