#!/bin/bash # Linux/WSL script to generate DeFi_Collateral_Simulation.xlsx set -e # Check if virtual environment exists and is complete if [ ! -d "venv" ] || [ ! -f "venv/bin/activate" ]; then # Remove incomplete venv if it exists if [ -d "venv" ]; then echo "Removing incomplete virtual environment..." rm -rf venv fi echo "Creating virtual environment..." if ! python3 -m venv venv 2>&1; then echo "" echo "ERROR: Failed to create virtual environment" echo "" echo "On Debian/Ubuntu systems, install the venv package:" PYTHON_VERSION=$(python3 --version 2>&1 | grep -oP '\d+\.\d+' | head -1) echo " sudo apt install python${PYTHON_VERSION}-venv" echo "" echo "Or install the general package:" echo " sudo apt install python3-venv" echo "" exit 1 fi # Verify venv was created successfully if [ ! -f "venv/bin/activate" ]; then echo "" echo "ERROR: Virtual environment created but activation script is missing" echo "This usually means ensurepip is not available." echo "" PYTHON_VERSION=$(python3 --version 2>&1 | grep -oP '\d+\.\d+' | head -1) echo "Install the venv package:" echo " sudo apt install python${PYTHON_VERSION}-venv" echo "" rm -rf venv exit 1 fi fi # Activate virtual environment echo "Activating virtual environment..." source venv/bin/activate # Install xlsxwriter in virtual environment echo "Installing xlsxwriter..." pip install --quiet --upgrade pip pip install --quiet xlsxwriter if [ $? -ne 0 ]; then echo "" echo "ERROR: Failed to install xlsxwriter" echo "Please install Python 3 and venv first:" echo " sudo apt-get install python3-venv" exit 1 fi echo "" echo "Generating DeFi_Collateral_Simulation.xlsx..." python generate_defi_simulation.py if [ $? -ne 0 ]; then echo "" echo "ERROR: Failed to generate workbook" deactivate exit 1 fi deactivate echo "" echo "SUCCESS: DeFi_Collateral_Simulation.xlsx has been generated!" echo ""